operador binario condicional esperado

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

¿Por qué aparece el mensaje "se espera un operador binario condicional"? Ya busqué y. I. Veo que [[]] es una declaración de prueba, pero ¿por qué no funcionaría?

Respuesta1

  1. Te falta $delante de var cuando lo llamas, como lo escribiste, será literalmente var.
  2. Considerarposibles vulnerabilidadesde su script cuando usa [[ ... ]]o (( ... ))junto con variables que no puede controlar. En su caso, quizás sea mejor utilizar [ "$var" -ne 0 ].
  3. Te falta un espacio entre !=y 0(¡ésta es la fuente del error!)
  4. !=es unoperador de comparación de cadenas, si bien podría funcionar en su ejemplo, desea utilizarlo -nepara comparar números enteros.

Hacer uso dechequeo de concha.

información relacionada