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