2016-07-09 18 views
0

Wenn ich den folgenden Code verwende

until [ $i -le 180 ] 

ich diesen Fehler

[: -le: unary operator expected 
+1

Welche Shell und wo definieren Sie '$ i'? Bitte zeigen Sie mehr von Ihrem Code. – Will

+0

in der Bash-Shell –

Antwort

0

Sehr einfach zu reproduzieren :

until [ $i -le 180 ] 
do 
    echo $i 
    ((i++)) 
done 
gash.sh: line 3: [: -le: unary operator expected 

Dies ist, weil $i leer ist. Sie können den Fehler vermeiden, indem Sie entweder:

until [[ $i -le 180 ]] 

oder

until (($i <= 180)) 

jedoch in beiden Fällen $i auf Null, bewerten, so müssen Sie i mit etwas mehr als 180 für die Schleife initialisieren zu laufen .