Fechado. Esta questão está fora do tópico . Atualmente não está aceitando respostas.
Comentários
Resposta
Tente alterando todos os +1 s após os expr s para + 1.
Sem o espaço expr retornará um erro e $temp ficará vazio. Se $temp estiver vazio, o -lt comparará um espaço em branco a um número, razão pela qual o erro aparece. Aqui, “uma linha que reproduz o problema:
t=0;t=`expr $t +1`;[ $t -lt 25 ]
Saída (para STDERR):
expr: syntax error bash: [: -lt: unary operator expected
Melhor ainda, altere todo o código que usa o utilitário externo expr para usar a expansão aritmética interna do próprio shell. Portanto, um código como este:
temp=`expr $temp +1`
… deve ser alterado para:
temp=$(($temp + 1))
Ou em bash , toda a linha pode ser substituída apenas por:
((temp++))
expr?expr: syntax error.