シェルスクリプトとは、 UNIXのコマンドを組み合わせて作るプログラムのことである。
UNIXというオペレーティングシステムにおける基本的な方法論は、
何かの仕事がやりたい時には一気に大きなプログラムを作ったりしないで、
小さなプログラムを組み合わせることによって、
大きなプログラムを作ってゆくというものである。
この考え方は、C言語においてプログラムを小さな関数に分けて作って行くのと同じ考え方である。
シェルスクリプトの場合は、C言語における関数が、UNIXのコマンドになるということだ。
世の中には、各種のシェルが存在するが、ここではみんながいつも使用している Cシェルについて もっとも基本的なことを説明する。 (ウインドウの中でプロンプトを表示して、みんなが打ち込んだコマンドを実行してくれているのがCシェルだ) 名前がCシェルというぐらいなので、文法的にはC言語に似ているところもある。
C言語 | シェルスクリプト | |
---|---|---|
要素 | 関数 | コマンド |
変数 | ◎ | ◎ |
計算 | ◎ | ○ |
入出力 | ◎ | ○ |
if | ◎ | ◎ |
while | ◎ | ◎ |
for | ◎ | × |
switch | ◎ | ◎ |
foreach | × | ◎ |
上の2でバグがあったり、思った通りにならない時は
1に戻ってviで修正する。
また、シェルスクリプトを実行する方法としてはchmodを使って実行可能ファイルに
しておく方法もあるが、ここではcshを使う方法で統一しておく。
# vi test.sh <- test.shを作る # chmod +x test.sh <- 実行可能にする # test.sh <- test.shだけで実行できる (test.shを実行) #
一度chmodを実行しておけば、後はtest.shだけで何度でも実行できる。
まずviでtest.shという名前のファイルを、以下の内容で作る。
ls
次に
csh test.sh
と打ち込むことによって test.sh の中に書き込んでおいたls
が実行される。
# ls a.out test.c < - キーボードから直接打ち込んだlsの結果 # vi test.sh < - 上のtest.shを作る # csh test.sh < - test.shの実行 a.out test.c test.sh < - test.shの中のlsの実行結果
vi test.c
cc test.c
a.out
というファイルを作って実行すると
# vi docc.sh < - 上のdocc.shを作る # csh docc.sh < - docc.shの実行 (ここでvi test.cが実行される) (viが終るとすぐにcc test.cが実行される) (cc test.cが終るとすぐにa.outが実行される)