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 caseBlock verlassen, wenn der Benutzer die Eingabeaufforderung eingibt , und er wird wieder in die whileSchleife 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 nEingabe ist das Skript vollständig wie gewünscht vorhanden. Ich möchte wissen, wie man es so macht, dass Ydas 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=1sein sollte TEST=1, und es ist sehr wahrscheinlich, dass Ihr Skript mit dieser Änderung funktioniert.
[Yn]*); du meintest wahrscheinlich[Yy]*).