お試しください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++))