キーボードからコマンドをタイプして、コンピューターを操作する場合、ユー ザーのキー入力を読み取って解釈し、必要なプログラムを起動する、という仕 事が行われている。その仕事をするのも一つのプログラムで、一般にコマンド・ インタープリター (コマンドを解釈するもの、という意味) と呼ばれているが、 UNIX ではシェル (shell, 貝殻) と呼ばれる2。Bourne shell (sh), C shell (csh), tcsh, Born again shell (bash) などが有名である。
UNIX の shell では、shell script (shell の台本) と言って、 キーボードからコマンドをタイプする代わりに、ファイルにコマンドを書いて おいて、それを順番に実行させる、という機能がある。
キーボードから打つのが面倒になるような、長いコマンドのうち、 いつも同じ部分である部分が多い場合など。 例えば、 matrix library と GLSC library を用いた C プログラム myprog.c をコンパイルして、 myprog という実行可能プログラムを作るには、
oyabun% gcc -o myprog -I/usr/local/include myprog.c -lmatrix -lglscd -lX11 -lm |
ccmg |
gcc -O -o $1:r -I/usr/local/include $* -lmatrix -lglscd -lX11 -lm |
oyabun% chmod +x ccmg |
oyabun% ccmg myprog.c |
シェルには、繰り返しのコマンドなどもあるので、便利である。例えばxv というコマンドは一度に一つのファイルしか処理できないので、たくさん のファイルを順に処理するのは面倒である。そこで
xvs |
#!/bin/csh foreach i ($*) xv $i end |
xvs |
#!/bin/sh for i in "$@" do xv $i done |
xvs *.jpg *.gif |