geschlossen. Diese Frage ist nicht zum Thema . Derzeit werden keine Antworten akzeptiert.
Kommentare
- Erhalten Sie auch Fehler von
expr
? - Kein Fehler in Ausdruck angezeigt
- Verwenden Sie weitere Zitate ™
- Bitte teilen Sie uns beim nächsten Mal ALLE Fehlermeldungen mit, die Sie erhalten. Nicht nur der letzte eines Sets. Sie hätten auch
expr: syntax error
.
Antwort
Versuchen Sie es Ändern aller +1
s nach den expr
s in + 1
.
Ohne Leerzeichen gibt expr
einen Fehler zurück und $temp
ist leer. Wenn $temp
leer ist, vergleicht -lt
ein Leerzeichen mit einer Zahl, weshalb der Fehler auftritt. Hier ist „ein Liner, der das Problem reproduziert:
t=0;t=`expr $t +1`;[ $t -lt 25 ]
Ausgabe (an STDERR):
expr: syntax error bash: [: -lt: unary operator expected
Besser noch, ändern Sie den gesamten Code, der das externe util expr
verwendet, um die interne arithmetische Erweiterung der Shell zu verwenden. Code wie folgt:
temp=`expr $temp +1`
… sollte geändert werden in:
temp=$(($temp + 1))
Oder in bash
kann diese ganze Zeile durch nur Folgendes ersetzt werden:
((temp++))