LoginSignup
1
1

More than 3 years have passed since last update.

shellscriptのselect文

Last updated at Posted at 2021-04-11

shellscriptのselect文を勉強したので、まとめます。

書式

select_ex.sh
select 変数名 in 値...
do
  処理...
done

*終了するときはbreakを入れるか、Ctrl+D(EOF送信)を使う。

実行されるとユーザからに応じた数値の入力を受け付ける。

1)値1
2)値2
...

ここで入力された数値が変数に格納される。

select.sh
select var in a b c d exit
do
    if [ $var = 'exit' ];
    then
       break
    fi
    echo $var
done
#入力受付
# 1) a
# 2) b 
# 3) c
# 4) d
# 5) exit

実行すると入力を受け付けて、5(exit)ならばbreakそれ以外ならば変数の値を表示。
ただ、1~5以外、空白を入力されるとエラーが出る。
そのため、if文のzオプションを使う。

select.sh
select var in a b c d exit
do
  if [ -z $var ];
  then
    echo 'this is unavailable'
  else
    if [ $var = 'exit' ];
    then
       break
    fi
    echo $var
  fi
done

これで1~5以外の数値の場合、unavailableと表示する。
select文では1~5以外、つまり選択肢にない値が入力された場合は変数にはnullを格納している。

間違えがありましたらご指摘ください。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1