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
- Te falta
$
delante de var cuando lo llamas, como lo escribiste, será literalmentevar
. - 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 ]
. - Te falta un espacio entre
!=
y0
(¡ésta es la fuente del error!) !=
es unoperador de comparación de cadenas, si bien podría funcionar en su ejemplo, desea utilizarlo-ne
para comparar números enteros.
Hacer uso dechequeo de concha.