シェル・プログラミング: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'
の間のスペースは幾つ入れても同じ結果となる。