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