シェルスクリプトの制御構造(switch)

switch

シェルのswitch文はC言語に似ているが、もう少し柔軟な使い方ができる。
シェルで使用するswitch文の形式は以下の通り。

switch(変数)
	case 値1 :
	    コマンド
	    breaksw
	case 値2 :
	    コマンド
	    breaksw
	    .
	    .
	default :
	    コマンド
endsw

C言語の ように{ と } は無くて、そのかわり endsw が最期につく。
値の部分には数値・文字列どちらでも使用できて、正規表現も使うことができる。
例えば、値の部分に*.cとあるとファイル名の最期の2文字が.cであるようなファイル(C言語プログラム)、*.m[ab]とあると最期の3文字が.maまたは.mbであるようなファイル名(MAYAデータファイル)になる。

switchの使用例

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
#

練習課題

まとめ

参考


Prev
Home | Contents
abe@injapan.net