bash プログラミング:select 文
今回は select 文について説明します。
文法は次の通りです。
select name [ in word ] ; do list ; done |
次の条件で例文を作成します。
- プロンプトは「
select fruits :
」 - 選択肢は「
apple
」「ap
」「grape
pleorange
」「quit」 - 「quit」で終了
- 選択されたら「is selected」
( PS3="select fruits : "; select fruits in "apple" "grape" "orange" "quit"; do { if [ "${fruits}" = "quit" ]; then break; else echo "${fruits} is selected."; fi; }; done ) |
実行結果
$ ( PS3=”select fruits : “; select fruits in “apple” “grape” “orange” “quit”; do { if [ “${fruits}” = “quit” ]; then break; else echo “${fruits} is selected.”; fi; }; done ) 1) apple 2) grape 3) orange 4) quit select fruits : 2 grape is selected. select fruits : 4 $ |
解説
- 選択項目の左側に数字が付与され、その数字を入力することで選択した事になります。
- select 文を抜けるには「break」を使用します。
- break 文は、ループや select 文を抜ける為に使用するモノですので、サブシェル内「()」では実行できません。
- select 文から抜ける為に、グループ内「{}」で実行しています。
- 数字を入力せずにリターンキーを押すと空文字列になります。
- プロンプト「PS3」が終了した時に元に戻る様に、全体をサブシェル内「()」で実行しています。