以下のスクリプトでは-潜在的に悪いスクリプトの実行を続行することを確認するようユーザーにプロンプトを表示します-ユーザー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]*)。