foreach - 繰り返し実行
指定されたコマンドを繰り返し実行することができます。csh・tcsh の内部コマンドです。また、while というコマンドもあります。if や case などもあります。 sh, bash では for コマンドを使用します。
Table of Contents |
foreach (csh・tcsh) 
例えば
% foreach n ( *.c )
と実行すると、
foreach?
のように問い合わせてきます。例えば
foreach? echo $n foreach? end
とすれば、 カレントディレクトリ以下の拡張子が .c のファイルすべてが表示されます。 (See also echo)
() の中で指定された文字列が一つづつ順番に n に代入されて end までに打ち込まれたコマンドを実行されます。 コマンドの行では n の内容を $n の様に $ をつけて参照します。 シェルの基本です。
% foreach n (*.c) foreach? echo gcc -o $n:r.o $n foreach? gcc -o $n:r.o $n foreach? end
のようにすれば
gcc -o sample.o sample.c gcc -o test.o test.c
のように繰り返し実行されます。:r などについては tcsh の技 のほうを参照してください。
for (sh・bash) 
bash の場合は for 文を使用します。例えば
% for i in *.jpg > do > convert $i ${i%jpg}gif > done
のように使用します。いきなりコマンドを実行せずに
> echo "convert $i ${i%jpg}gif"
のように試してからのほうが安全です。 自分はシェルスクリプトを書くときは bash で書くのでこちらのほうに 慣れてしまいました。結構便利です。