Erro [: -lt: operador unário esperado no script de shell Linux [fechado]

Fechado. Esta questão está fora do tópico . Atualmente não está aceitando respostas.

Comentários

  • Você também obtém erros de expr?
  • nenhum erro mostrado em expr
  • Use mais citações ™
  • Na próxima vez, diga-nos TODAS as mensagens de erro que receber. Não apenas o último de um conjunto. Você também teria expr: syntax error.

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++)) 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *