ここでは、for 文を使用して、下記の様々な構文について記載する。
・インデックス i でループする方法
・配列の要素数ループする方法
・スペース区切りの文字列リストでループする方法
・コマンド実行結果の行数分ループする方法
インデックス i でループする方法
下記の sample.sh のような for 文の構文でループできる。
・sample.sh
#!/bin/bash for ((i=3; i<6; i++)) do echo ${i} done
この sample.sh を実行すると、下記が標準出力される。
3 4 5
※下記の seq コマンドを使用したシェルスクリプトでも上記と同じ標準出力の結果を得ることができる。
・sample.sh
#!/bin/bash for i in `seq 3 5` do echo ${i} done
配列の要素数ループする方法
下記の sample.sh のような for 文の構文でループできる。
・sample.sh
#!/bin/bash
fruit_array=(apple orange banana)
for fruit in ${fruit_array[@]}
do
echo ${fruit}
done
この sample.sh を実行すると、下記が標準出力される。
apple orange banana
また、for 文の中でインデックスを取得して使用したい場合は、下記の sample.sh のような for 文の構文でループする。
・sample.sh
#!/bin/bash fruit_array=(apple orange banana) for i in ${!fruit_array[@]} do echo "${i} ${fruit_array[${i}]}" done
この sample.sh を実行すると、下記が標準出力される。
0 apple 1 orange 2 banana
スペース区切りの文字列リストでループする方法
下記の sample.sh のような for 文の構文でループできる。
・sample.sh
#!/bin/bash for fruit in apple orange banana do echo ${fruit} done
この sample.sh を実行すると、下記が標準出力される。
apple orange banana
コマンド実行結果の行数分ループする方法
下記の sample.sh のような for 文の構文でループできる。
・sample.sh
#!/bin/bash for line in `cat sample.lst` do echo ${line} done
・sample.lst
apple orange banana
この sample.sh を実行すると、下記が標準出力される。
apple orange banana
スポンサーリンク
0 件のコメント :
コメントを投稿