Fehler [: -lt: Unärer Operator im Shell-Skript Linux erwartet [geschlossen]

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++)) 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.