ожидается условный бинарный оператор

ожидается условный бинарный оператор
var="$(command1 -l '$var2' -c 'command2|grep -c "search"')"
if [[ var !=0 ]]; then
fi

Почему я получаю "ожидается условный бинарный оператор". Я уже искал и. Я вижу, что [[]] - это тестовый оператор, но почему он не работает?

решение1

  1. Вы пропустили $перед ним var при вызове, как вы и написали, это будет буквально var.
  2. Учитыватьвозможные уязвимостивашего скрипта при использовании [[ ... ]]или (( ... ))вместе с переменными, которые вы не можете контролировать. В вашем случае, возможно, лучше использовать [ "$var" -ne 0 ].
  3. Вы пропустили пробел между !=и 0(это источник ошибки!)
  4. !=этооператор сравнения строк, хотя это может сработать в вашем примере, вы хотите использовать его -neдля сравнения целых чисел.

Используйтепроверка оболочки.

Связанный контент