Errore [: -lt: operatore unario previsto nello script di shell Linux [closed]

Chiusa. Questa domanda è fuori tema . Attualmente non accetta risposte.

Commenti

  • Ricevi errori anche da expr?
  • nessun errore visualizzato su expr
  • Usa più citazioni ™
  • La prossima volta comunicaci TUTTI i messaggi di errore che ricevi. Non solo lultimo di un set. Avresti anche ottenuto expr: syntax error.

Risposta

Prova cambiando tutti i +1 dopo expr in + 1.

Senza lo spazio expr restituirà un errore e $temp sarà vuoto. Se $temp è vuoto, -lt confronterà uno spazio vuoto con un numero, motivo per cui viene visualizzato lerrore. Ecco “una riga che riproduce il problema:

t=0;t=`expr $t +1`;[ $t -lt 25 ] 

Output (a STDERR):

expr: syntax error bash: [: -lt: unary operator expected 

Ancora meglio, cambia tutto il codice che usa lutilità esterna expr per usare lespansione aritmetica interna della shell. Quindi un codice come questo:

temp=`expr $temp +1` 

… dovrebbe essere cambiato in:

temp=$(($temp + 1)) 

Oppure, in bash , lintera riga può essere sostituita solo con:

((temp++)) 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *