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
.