Î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++))