シェル・プログラミング:8. for文
シェルの for文は,繰り返し処理に使う値を明示します。
■for 文
for 値 in 値1 値2 ...
do
処理
done
「値1 値2 ...」の部分には,$* (標準入力) や `command` (コマンドの標準出力) を代入することも可能。また *txt とすれば拡張子 .txt のファイルすべてに対し同じ処理ができます。
# # 例 13 # #!/bin/sh echo '# Example 13' echo $# inputed echo '+------------+' for i in $* do echo $i done echo '+------------+' for i in "$*" do echo $i done echo '+------------+' for i in "$@" do echo $i done
実行例) % sh script a b c 'd e f' # Example 13 +------------+ 4 inputed +------------+ a b c d e f +------------+ a b c d e f +------------+ a b c d e f %
[ノート]引数は4つと読んでいるが,$* には6つ入っている。シェルはメタ文字を取り除き,スペースで区切りられた部分を分解し,それを $* に格納するのである。そこで,ダブル・クウォーテイションで $@ を囲めば,4つになる。ちなみに,$@ をダブル・クウォーテイションで囲まないと $* と同じ結果となる。また,a b c 'd e f' の間のスペースは幾つ入れても同じ結果となる。