Ich verwende GNU Bash, Version 4.3.46 auf einem Ubuntu-Computer. Aus irgendeinem Grund funktioniert diese while-Schleife nicht wie erwartet.
Das Menü sollte sich so lange wiederholen, bis der Benutzer beschließt, das Programm zu beenden. Anschließend wird eine Fehlerprüfung durchgeführt, die den Benutzer auffordert, wenn er sicher ist, dass das Programm beendet wird.
Hier ist der Code:
#!/bin/bash
menu_choice=0
quit_program="n"
while [[ $menu_choice -ne 3 && $quit_program != "y" ]]
do
printf "1. Backup\n"
printf "2. Display\n"
printf "3. Exit\n\n"
printf "Enter choice: \n"
read menu_choice
if [ $menu_choice -eq 3 ]
then
printf "Are you sure you want to quit? (y/n)\n"
read quit_program
fi
done
Ich denke, es muss möglicherweise mit globalen Variablen deklariert werden und ich lese lokal einen neuen Wert ein ...
&&
für die Bedingungen in der while-Schleife verwenden. Sie möchten, dass es eine Schleife durchführt, solange eines der beiden wahr ist, nicht beide gleichzeitig. Versuchen Sie es ||
stattdessen.