Încercați schimbarea tuturor +1
după expr
în + 1
.
Fără spațiu expr
va returna o eroare și $temp
va fi gol. Dacă $temp
este gol, atunci -lt
va compara un spațiu gol cu un număr, motiv pentru care apare eroarea. Aici „un singur liner care reproduce problema:
t=0;t=`expr $t +1`;[ $t -lt 25 ]
Ieșire (către STDERR):
expr: syntax error bash: [: -lt: unary operator expected
Mai bine, schimbați tot codul care utilizează utilul extern expr
pentru a utiliza propria expansiune aritmetică internă a shell-ului. Deci, codul astfel:
temp=`expr $temp +1`
… ar trebui schimbat în:
temp=$(($temp + 1))
Sau, în bash
, întreaga linie poate fi înlocuită cu doar:
((temp++))