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