お試しくださいexprの後のすべての+1を+ 1に変更します。
スペースがないと、exprはエラーを返し、$tempは空になります。 $tempが空の場合、-ltは空白を数値と比較するため、エラーが表示されます。ここに「問題を再現する1つのライナーがあります:
t=0;t=`expr $t +1`;[ $t -lt 25 ]
出力(STDERRへ):
expr: syntax error bash: [: -lt: unary operator expected
さらに良いことに、外部util exprを使用するすべてのコードを変更して、シェル自体の内部算術展開を使用します。したがって、次のようなコードを作成します。
temp=`expr $temp +1`
…次のように変更する必要があります:
temp=$(($temp + 1))
または、のbash では、その行全体を次のように置き換えることができます:
((temp++))