operador binário condicional esperado

operador binário condicional esperado
var="$(command1 -l '$var2' -c 'command2|grep -c "search"')"
if [[ var !=0 ]]; then
fi

Por que estou recebendo "operador binário condicional esperado". Eu já procurei e. I. vejo que [[]] é uma declaração de teste, mas por que não funcionaria?

Responder1

  1. Está faltando $na frente do var quando você chama ele, como você escreveu, será literalmente var.
  2. Considerarpossíveis vulnerabilidadesdo seu script ao usar [[ ... ]]ou (( ... ))junto com variáveis ​​que você não pode controlar. No seu caso, talvez seja melhor usar [ "$var" -ne 0 ].
  3. Está faltando um espaço entre !=e 0(esta é a origem do erro!)
  4. !=é umoperador de comparação de strings, embora possa funcionar no seu exemplo, você deseja usar -nepara comparar números inteiros.

Fazer uso deverificação de shell.

informação relacionada