Bash-Shell, während die Schleife über den bedingten Ausdruck hinausgeht

Bash-Shell, während die Schleife über den bedingten Ausdruck hinausgeht

In meinem Problem sieht es so aus, als ob jWert und iWert erreichen 6; wobei isie nur bis laufen sollten 5. Kann das bitte jemand erklären?

i=0;
j=0;
echo "values of $i and $j" > debug.txt;
while [ $j -le 5 ]
do
    j=expr $j + 1
    i=expr $i + 1
    echo "values of $i and $j" >> debug.txt
done;
cat debug.txt;

AUSGABE :

value of i is  0 and j is  0
value of i is  1 and j is  1
value of i is  2 and j is  2
value of i is  3 and j is  3
value of i is  4 and j is  4
value of i is  5 and j is  5
value of i is  6 and j is  6

Antwort1

Der Grund, warum Ihr Skript nicht funktioniert, liegt darin, dass Sie verwenden -le. Dadurch geht Ihr Skript davon aus, dass es bei Erreichen von 5 immer noch ausgeführt wird, da es gleich 5 ist. Ändern Sie das -lein -lt.

verwandte Informationen