yes or no を使ったbashスクリプト

bashスクリプトで、yes or no を入力させたい

目的

  • bashスクリプトで、yes or no を入力させるプログラムのサンプルです。例えば、OSの設定変更や再起動など影響があるスクリプトを実行する時に同意を求めることを想定しています。

サンプル

  • readを使って標準入力を1行読み込み、ANSWERに格納しています。case文を使い、yes あるいはyes以外を判断しています。yesの判定は、””(デフォルトはyes)、”Y”、”y”、”yes”、”Yes”、”YES” のいずれかです。
  • 上記以外の文字列はno と判定し、exit 0を返して終了します(以降の処理を回避するため)。
echo "This tool will shutdown this instance. Is it OK? [Y/n]"
read ANSWER
case $ANSWER in
    "" | "Y" | "y" | "yes" | "Yes" | "YES" ) echo "OK.";;
    * ) exit 0;;
esac

bash, CentOS, Ubuntu

Posted by takaaki