[2.6] シェルスクリプト

これまで見てきたように、シェルはユーザとコンピュータの橋渡しをして、 ユーザがコマンドを端末から打ち込む毎に、それを解釈し実行します。 一方、[2.2]節で触れたように、 「プログラムが可能である」という、もう一つの面もあります。 この、プログラムとして手続きを書き込んだファイルを 「スクリプト・ファイル」と言います。 スクリプト(script)とは劇の「台本」のことであり、 台本を事前に決めていてそれに沿って行わせるためにこの名前があります。

シェル・プログラミングは通例、B シェルを使って行います*。 具体的にどのようなものか、簡単な例を見てみましょう。

次のような一連の仕事を行うコマンドを作ることを考えます。 (カレントディレクトリは /home/inex/script)

それぞれの働きをするコマンドは
です(Hey! と言われて励まされるかどうかは議論の対象としない)。

従って、次のようなファイルを書こう。

[スクリプトファイル:sample]
#! /bin/sh
date
pwd
echo 'Hey!'
ここで、
$ sh sample
とすると、次のように出力される。
$ sh sample
1990年9月27日(木) 14:40
/home/inex/script
Hey!

この場合、B シェル(sh)をわざわざ起動して、 その引数としてファイル名を指定し、 そのファイルを B シェルが解釈して実行しています。

いちいちこのようなことをするのは非能率でもあるので、

$ chmod 744 sample
もしくは
$ chmod u+x sample
とすると、スクリプトのファイル名を入力するだけで実行することができます。
$ sample

この場合、自動的に(自分が使っている login シェル)が、 スクリプトファイルを B シェルに解釈させ実行させています。


[2.7] より有用なシェルスクリプトを作るにあたって

より有用なシェルスクリプトを作るにあたって、 参考にすると良いサイトや文献を紹介しておきます。