
var="$(command1 -l '$var2' -c 'command2|grep -c "search"')"
if [[ var !=0 ]]; then
fi
Почему я получаю "ожидается условный бинарный оператор". Я уже искал и. Я вижу, что [[]] - это тестовый оператор, но почему он не работает?
решение1
- Вы пропустили
$
перед ним var при вызове, как вы и написали, это будет буквальноvar
. - Учитыватьвозможные уязвимостивашего скрипта при использовании
[[ ... ]]
или(( ... ))
вместе с переменными, которые вы не можете контролировать. В вашем случае, возможно, лучше использовать[ "$var" -ne 0 ]
. - Вы пропустили пробел между
!=
и0
(это источник ошибки!) !=
этооператор сравнения строк, хотя это может сработать в вашем примере, вы хотите использовать его-ne
для сравнения целых чисел.
Используйтепроверка оболочки.