Im folgenden Skript - das den Benutzer auffordert, zu bestätigen, dass er mit der Ausführung eines möglicherweise fehlerhaften Skripts fortfahren möchte Y
- wird der case
Block verlassen, wenn der Benutzer die Eingabeaufforderung eingibt , und er wird wieder in die while
Schleife zurückgeschickt.
#! /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?"
Bei der n
Eingabe ist das Skript vollständig wie gewünscht vorhanden. Ich möchte wissen, wie man es so macht, dass Y
das Skript bei der Eingabe sowohl aus dem Block case
als auch aus dem while-Block ausbricht , aber nicht vollständig beendet wird. Gibt es etwas, das ich für den Platzhalter ("Was geht hier?") Einfügen kann, um das zu tun?
$TEST=1
sein sollte TEST=1
, und es ist sehr wahrscheinlich, dass Ihr Skript mit dieser Änderung funktioniert.
[Yn]*)
; du meintest wahrscheinlich[Yy]*)
.