Pruebe cambiando todas las +1
s después de las expr
a + 1
.
Sin el espacio expr
devolverá un error y $temp
estará vacío. Si $temp
está vacío, entonces -lt
comparará un espacio en blanco con un número, por lo que aparece el error. Aquí «una línea que reproduce el problema:
t=0;t=`expr $t +1`;[ $t -lt 25 ]
Salida (a STDERR):
expr: syntax error bash: [: -lt: unary operator expected
Mejor aún, cambie todo el código que usa la utilidad externa expr
para usar la expansión aritmética interna del shell. Entonces, un código como este:
temp=`expr $temp +1`
… debería cambiarse a:
temp=$(($temp + 1))
O, en bash
, esa línea completa se puede sustituir con solo:
((temp++))