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
.