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
- Está faltando
$
na frente do var quando você chama ele, como você escreveu, será literalmentevar
. - 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 ]
. - Está faltando um espaço entre
!=
e0
(esta é a origem do erro!) !=
é umoperador de comparação de strings, embora possa funcionar no seu exemplo, você deseja usar-ne
para comparar números inteiros.
Fazer uso deverificação de shell.