コマンド
foreach
指定されたコマンドを一括して実行する。csh・tcsh の内部コマンド
指定されたファイルに対して、一連のコマンドを実行する。例えば複数のファイルの文字コードを変換したい場合、
% foreach i ( file1 file2 file3 )
foreach? nkf -e < $i > tmp
foreach? mv tmp $i
foreach? end
とすると、file1、file2、file3 が順にシェル変数 $i にセットされ、nkf と mv が実行される。
% foreach i ( *.txt /tmp/hoge/a?? )
などとメタキャラクタを使うこともできる。
DOS でいうところの
を行うには
% foreach i ( *.txt )
foreach? cp $i $i.bak
foreach? end
とする。拡張子の一括変換は
% foreach i ( *.txt )
foreach? cp $i $i:s/.txt/.html/
foreach? end
とすればよい。
シェル変数への代入時は $ を付けてはいけないことに注意。つまり
はエラーになる。
foreach は、csh・tcsh の内部コマンドである。sh・bash の場合は for が用意されている。