以下のスクリプトでは-潜在的に悪いスクリプトの実行を続行することを確認するようユーザーにプロンプトを表示します-ユーザーY
がプロンプトで入力すると、case
ブロックから抜け出し、while
再びループに送り返されます。
#! /bin/bash
set -e
echo
echo "bad install start"
echo "-----------------------------------------"
while true; do
read -p "this script will probably fail - do you want to run anyway?" yn
case $yn in
[Yy]*)
##### WHAT GOES HERE?? #####
;;
[Nn]*)
exit ;;
*)
echo "answer y or n" ;;
esac
echo "script has broken out of case back into while loop"
done
echo -e "\e[33m Installing bad packagename \e[0m"
apt-get install sdfsdfdfsd
echo "rest of script - will i keep running?"
ときにn
入力され、スクリプトは、所望の全体として存在します。Y
スクリプトが入力されたときに、ブロックがwhileブロックcase
と whileブロックの両方から抜け出すが、完全には終了しないようにする方法を知りたい。それを行うためにプレースホルダーに入れることができるものはありますか(「ここに何が??」)。
私が最初に答えてからコードを編集しましたが、どのような場合でもそうで
—
dhag
$TEST=1
あることTEST=1
に注意してください。スクリプトはこの変更で動作する可能性が非常に高いです。
doh、はい、テスト時にそれを見ました!
—
-the_velour_fog
@dhag編集を改善したと思います。ご覧ください。あなたの目標は、受け入れられた答えがうまく適合するものにコードを書き直すことだと思われますが、今はもっと近いと思います。
—
デロバート
@derobert:あなたの編集は私には見栄えが良いです。それは確かに質問を明確にします。
—
ダグ
[Yn]*)
。おそらくあなたが意味した[Yy]*)
。