Clôturé.  Cette question est  hors sujet . Il naccepte pas les réponses actuellement. 
Commentaires
Réponse
 Essayez en remplaçant tous les +1 après les expr par + 1. 
 Sans lespace, expr renverra une erreur et $temp sera vide. Si $temp est vide, alors -lt comparera un espace vide à un nombre, cest pourquoi lerreur apparaît. Voici « une ligne qui reproduit le problème: 
t=0;t=`expr $t +1`;[ $t -lt 25 ] 
Sortie (vers STDERR):
expr: syntax error bash: [: -lt: unary operator expected 
 Mieux encore, changez tout le code qui utilise lutilitaire externe expr pour utiliser la propre expansion arithmétique interne du shell. Donc, un code comme celui-ci: 
temp=`expr $temp +1` 
… doit être remplacé par:
temp=$(($temp + 1)) 
 Ou,  dans bash , cette ligne entière peut être remplacée par: 
((temp++)) 
expr?expr: syntax error.