Unixシェル for, foreach

for または foreach コマンドは、処理の流れ(フロー)を制御する構文です。特定のアクションを複数回繰り返して実行させることができます。

for, foreach
シェル for foreach
sh
bash
csh
dash
ksh

sh, bash のfor文

for variable do commands done
for variable in values
do commands
done
for variable in `cmd`
do commands
done
variable

変数を指定する。

values
変数に代入する値のリストを空白で区切って指定する。
$ for i in 2 4 6
> do echo $i
> done
2
4
6

セミコロンで区切ることにより、1行で記述できる。

$ for i in 2 4 6 ; do echo $i ; done
2
4
6
cmd
値のリストを出力するコマンドを指定する。
$ for i in `seq -w 3` ; do echo $i ; done
1
2
3
commands

繰り返し実行するコマンドを指定する。 複数のコマンドをセミコロン( ; ) 又は改行で区切って指定することができる。

コマンドが実行されるたびに、変数は in のリストから次に得られる値に設定されます。in 値 を省略すると、for コマンドは、設定された各定位値パラメタに対して、do を 1 回実行します ( 後述の「パラメタ置換」を参照 ) 。リストの値がなくなると、実行は終了します。

for para do echo $para ; done
for msgsize in 4 8 12 16
do
  echo $msgsize
done
for i in `seq -w 3`
do
echo $i
done