Ich arbeite in BASH und ich habe gerade einen Idiot Moment. Ich habe ein Projekt, an dem ich arbeite, dass ich einige sehr einfache arithmetische Ausdrücke verwenden muss und ich habe gerade gemerkt, dass viele meiner Probleme damit zusammenhängen, dass meine Variablen nicht aktualisiert werden. Also habe ich einen grundlegenden Algorithmus zusammengestellt, der eine Variable um eine Variable mit einer while-Schleife erhöht, bis eine bestimmte Zahl erreicht ist.BASH Arithmetische Probleme
counter=1
counter2=0
while [[ counter2 < 10 ]]; do
counter2=$(($counter2+$counter))
echo $counter
echo $counter2
done
Ich führe das Skript. Tut nichts. Ich habe die <
->
nur für Kicks und eine Endlosschleife tritt mit einer wiederholten Ausgabe von:
1
0
1
0
Für immer und ewig, bis ich es stoppen. Es ist also offensichtlich, dass sich die Variablen nicht ändern. Warum? Ich fühle mich wie ein Idiot, weil es etwas Dummes sein muss, das ich übersehe. Und warum, wenn ich <
habe, ist es auch keine Endlosschleife? Warum druckt es überhaupt nichts? Wenn counter2
immer weniger als 10 ist, warum geht es dann nicht für immer weiter?
Danke Leute im Voraus.
EDIT: Nun, ich erkennen, warum es nichts zum Ausgeben wurde, wenn der Scheck <
... Ich soll $counter2
wurde anstelle von nur counter2
den tatsächlichen Wert von counter2
zu bekommen. Aber jetzt ist es nur gibt:
1
2
Und das ist es ... Ich fühle mich wie so ein derp.
while [[counter2 <10]]; oder während [[$ counter2 <10]]; –