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