繰り返し処理でよく使われるforについてまとめます。
基本的な文法
1 2 3 4 |
for 単語 in 単語リスト do 処理 done |
実行例:
for.sh
1 2 3 4 5 6 |
#!/bin/bash for i in aaa bbb ccc do echo $i done |
1 2 3 4 |
bash for.sh aaa bbb ccc |
実行時の引数を繰り返し処理する場合
実行時の引数のリストは$@
に格納されているので、forで繰り返す表示することが可能です。
1 2 3 4 5 6 |
#!/bin/bash for i in $@ do echo $i done |
1 2 3 4 |
$ bash for_args.sh aaa 111 'Hello World' aaa 111 Hello World |
ループをスキップ(continue)、ループを抜ける(break)
continue
で現在のループをスキップし、次の単語を繰り返し処理をスタートし
break
でループそのものから抜けることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash for i in {1..9} do if [ $((i % 3)) -eq 0 ];then echo "$iは3の倍数" continue elif [ $((i % 5)) -eq 0 ]; then echo "$iは5の倍数" break; fi echo "$i" done |
1 2 3 4 5 6 |
$ bash for_break_continue.sh 1 2 3は3の倍数 4 5は5の倍数 |
まとめ
for 変数 in 単語リスト
の形式で記述した、スペース区切りの単語リストから一つづつ抜き出して繰り返し処理を実行できるcontinue
やbreak
で次の繰り返しを再開したり、ループを抜けることができる