シェルスクリプトでプログラムの計測とかをするために
研究室を見てると,みんなシェルスクリプトを書いてるみたいだけど,シェルスクリプトのfor文には2種類ある事を知らない人が多いみたい.
僕はあんまり機会がなくて(2)は使わないんだけど,有効なので紹介する.
(1)よくあるfor文
for ( (n=0 ; n<100 ; n++ ) )
do
echo cat $n.txt
done
(2)カウンタに文字式を使う
for文の中は上と同じものだったとして,
do
echo $n
done
for文の条件式をこのように書くと
$ for n in 1 2 3
>> 1 2 3 (本当は開業されるけど省略)
$ for n in $(ls | grep *.txt)
>> hoge.txt fuga.txt hige.txt
$for n in $(cat hoge.txt)
>> セパレータで区切られたhoge.txt内の文字列を出力
$for n in $(awk '{print$1}' hoge,txt)
>> セパレータで区切られたhoge.txt内の第一フィールドの文字列を出力
こんな感じ.知らない人は使って.