Bash でコマンド実行前に確認するイディオムおさらい
毎回忘れるので専用の記事を作ることにした。
Windows コマンドプロンプトだと set /p
を使うヤツ。
Set confirm=
Set /p confirm=よければ Enter を押してください・ダメなら n を入力してください
If '%confirm%'=='n' (
Rem キャンセルの場合
Goto LABEL_CANCEL
)
Rem 通常の処理
コレの Bash 版。Bash の場合は read -p '【メッセージ】' 【変数名】
という構文で実現できる。
read -p '実行してよろしいですか? (y/n) :' yn
# 「y」と入力されなかった場合は中止にする
if [ ! "${yn}" = 'y' ]; then
echo '中止します。'
exit 1
fi
read -p '実行してよろしいですか? (Y/n) ' yn
# 「y」か「Y」の場合はこの処理、それ以外はこの処理、といった分岐を case 文で行う
case "${yn}" in
[yY]) echo '実行します。'
echo '実行しました'
;;
*) echo '中止します。'
return 1
;;
esac
Set /p
と read -p
。プロンプトの P
かな?そろそろ覚えねば…。