シェルのswitch文はC言語に似ているが、もう少し柔軟な使い方ができる。
シェルで使用するswitch文の形式は以下の通り。
switch(変数)
case 値1 :
コマンド
breaksw
case 値2 :
コマンド
breaksw
.
.
default :
コマンド
endsw
C言語の ように{ と } は無くて、そのかわり endsw が最期につく。
値の部分には数値・文字列どちらでも使用できて、正規表現も使うことができる。
例えば、値の部分に*.cとあるとファイル名の最期の2文字が.cであるようなファイル(C言語プログラム)、*.m[ab]とあると最期の3文字が.maまたは.mbであるようなファイル名(MAYAデータファイル)になる。
C言語のコンパイルとMAYAのレンダリングを一つのプログラムで実行できるシェルスクリプトを作ってみよう。
以下のシェルスクリプトをviによってdo.shというファイル名前で作る。
上のシェルスクリプトを実行すると以下のようになる。
switch($argv[1])
case *.c :
cc $argv[1]
breaksw
case *.m[ab] :
Render $argv[1]
breaksw
default :
echo $argv[1] is not C program or MAYA data file
endsw
# csh do.sh test.c ... <- cc test.c を実行 # csh do.sh kadai.ma ... <- Render kadai.ma を実行 # csh do.sh kadai.mb ... <- Render kadai.mb を実行 # csh do.sh kadai.iff kadai.iff is not C program or MAYA data file #
# csh do.sh test.c kadai.ma kadai.iff ... <- cc test.c を実行 ... <- Render kadai.ma を実行 ... <- fcheck kadai.iff を実行 #