ブレークはfor、select、while、untilループでのみ使用されますが、そうでない場合にのみ使用されます。 しかし、あなたはちょっと混乱しているようです。 デフォルトでは、;;プログラムではなくケースを終了する。
問題は、どのように終了させるのかではなく、終了するまで実行を続ける方法です。
この例を参照してください、あなたは、B、CまたはDのいずれかを押した場合、ケース内の対応するコマンドが実行される
echo -e "a.Basic Information \nb.Intermedite Information \nc.All Information \nd.Exit from case \ne.Exit from program"
read -p "Enter Your Choice" ch1
case $ch1 in
a) echo "-->run basic information script";;
b) echo "-->run intermediate information script";;
c) echo "-->run allinformation script";;
d) echo "-->Exit from case";;
e) echo "-->Exit from program"
exit;;
*) echo "Wrong Selection - Try Again"
esac
echo "Command X: This is command X after the case" #Command inside program but out of case
場合が終了すると、コマンドX外部ケースもために実行されますプログラムは終了しません。
eを押すと、ケース内のexit
コマンドが実行され、プログラムが終了し、最後のコマンドX(ケース外)は実行されません。 A、B、Cを選択した場合の
出力、またはd
[email protected]:/home/gv/Desktop/PythonTests# ./bashtest.sh
a.Basic Information
b.Intermedite Information
c.All Information
d.Exit from case
e.Exit from program
Enter Your Choice : a
-->run basic information script
Command X : This is command X after the case
[email protected]:/home/gv/Desktop/PythonTests#
#If you select e, the last command X is not executed since program is terminated due to exit.
あなたは(d
を押す)あなたの選択まで生きケースを維持したいならば、あなたはケースの前にwhileループを使用することができます。上記の場合
while [ "$ch1" != "d" ];do
echo -e "a.Basic Information \nb.Intermedite Information \nc.All Information \nd.Exit from case \ne.Exit from program"
read -p "Enter Your Choice : " ch1
case $ch1 in
a) echo "-->run basic information script";;
b) echo "-->run intermediate information script";;
c) echo "-->run allinformation script";;
d) echo "-->Exit from case";;
e) echo "-->Exit from program"
exit;;
*) echo "Wrong Selection - Try Again"
esac
done #if d or e are not pressed the menu will appear again
echo "Command X: This is command X after the case"
/組み合わせながら、あなたはa
、b
またはc
対応する場合のコマンドが実行されますを選択した場合、コマンドXは実行されませんし、ケースメニューが再ロードされます。
d
を押すと、プログラムが終了しないため、コマンドXが実行されます。
e
を押すと、ケースとプログラムはexit
になり、プログラムが終了してからコマンドXは実行されません。
またしばらく&場合と同様である選択&場合、使用することができます:あなたは「ケースから終了」を押すと、ケースと選択が選択されます後に終了し、コマンドXされます再び
IFS=$'\n' #necessary since select by default separates option using space as a delimiter
op=("Basic Information" "Intermedite Information" "All Information" "Exit from case" "Exit from program") #Use an array
select ch1 in ${op[@]}; do
echo "You choose $ch1"
case $ch1 in #or case $ch1 in
"Basic Information") echo "-->run basic information script";; #${op[0})....;;
"Intermedite Information") echo "-->run intermediate information script";; #${op[1})....;;
"All Information") echo "-->run allinformation script";; #${op[2})....;;
"Exit from case") echo "-->Exit from case" #${op[3})....;;
break;;
"Exit from program") echo "-->Exit from program" #${op[4})....;;
exit;;
*) echo "Wrong Selection - Try Again"
esac #esac
done
echo "Command X: This is command X after the menu"
をプログラムは終了していないので実行されます。
スクリプトを終了するための区切り文字が必要ですか?そのスクリプトがなければ終了できません – Inian