So habe ich diese Wenn-Anweisung, was das Skripts der Exit-Code überprüft wird:Wie aktualisiere ich eine "globale" Variable innerhalb einer while-Schleife?
if [ $? -eq 0 ]; then
wasSuccessful=true;
fi
In anderen Sprachen, ich so etwas tun würde:
while wasSuccessful == false
Und dann würde die Schleife am Laufen halten bis der Exit-Code wahr war. (Ich plane, einen Schleifenzähler auch für zu viele Fehlversuche zu implementieren, aber das ist ein anderes Problem zu lösen)
Ich denke, ich brauche eine hier-Zeichenfolge, aber ich bin mir nicht genau sicher, wie das aussehen würde. Hier ist eine grobe Skizze von meinem Code gerade jetzt, in Bash:
wasSuccessful=false
while [ "$wasSuccessful" = "false" ]
do
#Bunch of code here, then the check for exit code
if [ $? -eq 0 ]; then
wasSuccessful=true;
fi
done
Vorschläge, wie so etwas zu tun, wären sehr willkommen :)
Ihr Code scheint in Ordnung zu sein. Was ist das Problem, vor dem Sie stehen? Alle Variablen in Bash sind global, sofern sie nicht innerhalb einer Funktion als lokal deklariert sind. – codeforester
Ich dachte, dass die while-Schleife in einer Subshell ausgeführt wird, also werden Änderungen, die ich an Variablen mache, nur in diesem Session-Bereich gespeichert. Ist das nicht korrekt? – iMatthewCM
@iMatthewCM Die 'while-Schleife' wird nicht in der Subshell ausgeführt, es sei denn, Sie fügen sie in '' commands '' ein. – alijandro