シェルスクリプトの
条件に合致している間は、同じ処理を何度も繰り返す処理
(for文、while/until文、select文)についてまとめました。
for文
for文は、指定した回数分、同じ処理を繰り返す。
for 変数名 in リスト
do
処理
done
- リストに繰り返す値を複数指定しておく。
- リストにコマンドを指定することができ、$()または``バッククォートで囲む。
seqで回数を指定する
seqは、指定した回数処理を繰り返すことができる。
- 連続・順序という意味。シーケンス。
#!/bin/bash for i in $(seq 1 5) do echo $i回目 done
$ ./ファイル名 1回目 2回目 3回目 4回目 5回目
処理が5回繰り返される。
while/until文
while文
while文は、
条件を満たす(真である)間、繰り返し処理を続ける。
条件式が偽になると終了する。
- 条件式はtestコマンドで指定することが多い。
while 条件式
do
処理
done
#!/bin/bash num=1 while [ $num -le 10 ] # $numが10以下の間は do echo $num >> sample.txt # sample.txtにリダイレクトして num=$(($num + 2)) # $numに2を足す done #5回繰り返し$numが10以上になったので偽となり終了
↓.
スクリプトを実行し(ファイル名を指定する方法)
$ ./スプリクトファイル名
↓
sample.txtファイルを見ると
$ less sample.txt
↓
1 3 5 7 9
と出力されている。
until文
until文は、
条件が偽である間、繰り返し処理を続ける。
条件式が真になると終了する。
until 条件式
do
処理
done
☀︎無限ループ☀︎
無限ループとは、
プログラムが同じ処理を繰り返し終了できない状態になること。
終了する方法は2通りある。
①「ctrl+c」で強制終了する。
②ループ内にbreakコマンドを実行する処理を記述する。
無限ループを作成するには、
while文の条件式でヌルコマンド( : )を使う。 「while : 」
プログラムが同じ処理を繰り返し終了できない状態になること。
終了する方法は2通りある。
①「ctrl+c」で強制終了する。
②ループ内にbreakコマンドを実行する処理を記述する。
無限ループを作成するには、
while文の条件式でヌルコマンド( : )を使う。 「while : 」
select文
select文は、
端末上にメニュー形式の選択肢を表示して、ユーザーに選ばせることができる
bash のみの内部コマンド
select 変数名 in リスト
do
処理
done
#!/bin/bash #1) りんご #2) みかん #3) ぶどう #4) exit select fruit in りんご みかん ぶどう exit do if [ "$fruit" = "exit" ]; then #もしfruit変数が”exit”と同じなら echo "終了します。" break #処理を終了する。 fi #”exit”と違うならif文をスキップ echo "選んだのは$fruitジュースです。" #ユーザーが選択した番号の変数が入る done
スクリプト実行すると
1) りんご 2) みかん 3) ぶどう 4) exit #? 1 #ユーザーが選択 選んだのはりんごジュースです。 #? 2 #ユーザーが選択 選んだのはみかんジュースです。 #? 3 #ユーザーが選択 選んだのはぶどうジュースです。 #? 4 #ユーザーが選択 終了します。
「$REPLY」・・・selectを使用するときに内部で生成される特別な変数