シェルスクリプトでwhile read -pとcaseで対話式のスクリプトを作っているときにちょっとはまったので備忘録的に残しておく。
やりたいこと
スクリプトで以下のように聞かれたときにyでもYESでもYesでもいいよって判定させたい。
ほんとうにいいですか? [y/n]
つくってみる
while read -p "ほんとうにいいですか? [y/n] " yes_or_no ; do
case ${yes_or_no} in
[Yy]|[Yy][Ee][Ss] )
echo "やったな"
exit
;;
[Nn]|[Nn][Oo] )
echo "やらなかったな"
exit
;;
* )
echo "yesかnoかでこたえてほしいのです"
;;
esac
done
このように [Yy]|[Yy][Ee][Ss]とすればYでもyでもYESでもyesでもいいよって判定になる!
関係ないけど
YesかNoかを尋ねるときの[Y/n]とか[y/N]とかこのYとNの大文字小文字に意味ってあるのだろうか…?
趣味?