Uzavřeno. Tato otázka je mimo téma . Momentálně nepřijímá odpovědi.
Komentáře
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++))
expr?expr: syntax error.