Chyba [: -lt: ve skriptu prostředí Linux se očekává unární operátor [uzavřeno]

Uzavřeno. Tato otázka je mimo téma . Momentálně nepřijímá odpovědi.

Komentáře

  • Zobrazují se vám také chyby z expr?
  • na expr se nezobrazí žádná chyba
  • Use More Quotes ™
  • Příště nám prosím sdělte VŠECHNY chybové zprávy, které se vám zobrazí. Nejen poslední ze sady. Také byste dostali expr: syntax error.

odpověď

zkusit změna všech +1 s po expr s na + 1.

Bez mezery expr vrátí chybu a $temp bude prázdný. Pokud je $temp prázdný, bude -lt porovnávat prázdné místo s číslem, a proto se objeví chyba. Zde je jedna linka, která reprodukuje problém:

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

Výstup (do STDERR):

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

Ještě lépe, změňte veškerý kód, který používá externí util expr, aby používal vlastní interní aritmetické rozšíření shellu. Takže kód takto:

temp=`expr $temp +1` 

… by měl být změněn na:

temp=$(($temp + 1)) 

Nebo v bash lze celý řádek nahradit pouze:

((temp++)) 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *