シェルスクリプトを実行してみる

シェルスクリプトはLinuxのコマンドを組み合わせて複雑な処理を行う時に利用します。

組み合わせであればパイプ等を使えば良いかもしれませんが、複数行の処理やif等の条件分岐で更に複雑な処理を行いたいときに有効です。


はじめにターミナル上で使用しているログインシェルについて確認しておきます。

$ echo $SHELL

SHELLはシェル変数になりまして、ターミナルを起動した時に自動で変数が定義されます。

/bin/bash

使用しているログインシェル(上記であればBash)とシェルのパスがわかりました。


上記内容を踏まえた上で、シェルスクリプト用のファイルを作成してみます。




$ cd ~
$ micro hello.sh

※hello.shのファイル名ですが、シェルスクリプトであれば拡張子(.sh)はなくても良いです。

~/hello.sh

#!/bin/bash

echo hello

ファイルを保存した後にシェルスクリプトを実行してみます。

# hello.shに実行権限を付与します。
$ chmod +x hello.sh
# シェルスクリプトを実行する場合は、ファイルをフルパス(./は現在のディレクトリ)のみで実行します。
$ ./hello.sh

chmod - Wikipedia

hello

hello.shに記述したスクリプトが実行されました。




一行目の

#!/bin/bash

ですが、今回のファイルで実行する時のログインシェルのパスを指定します。

#!パスの形式であれば、ログインシェルに限らず、PythonやNode.jsを実行することも可能です。


一行空ける必要はありませんが、慣習により一行空け、次の行にLinuxコマンドの処理を追加します。


後はファイルに実行権限を付与し、シェルスクリプトが記述されたファイルのフルパスを指定して、ファイル内のスクリプトを実行します。


追記

シェルスクリプトの最初の一行目の

#!/bin/bash

ですが、Bash以外のログインシェル(例:Zsh)を使用を考慮して、

#!/bin/sh

と書くことが一般的です。


/bin/shには現在使用中のログインシェルが設定されています。

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。