预期条件二元运算符

iCo*_*EIP 5 linux shell bash test variable

var="$(command1 -l '$var2' -c 'command2|grep -c "search"')"
if [[ var !=0 ]]; then
fi
Run Code Online (Sandbox Code Playgroud)

为什么我得到“预期条件二元运算符”。我已经搜索过并且。我看到 [[]] 是一个测试语句,但为什么它不起作用?

pLu*_*umo 6

  1. 当你调用它时,你$在 var 前面丢失了,就像你写的那样,它实际上是var
  2. 使用无法控制的变量或与无法控制的变量一起使用时,请考虑脚本可能存在的漏洞。对于您的情况,使用 可能会更好。[[ ... ]](( ... ))[ "$var" -ne 0 ]
  3. !=您在和之间缺少一个空格0(这是错误的根源!)
  4. !=是一个字符串比较运算符,虽然它可能在您的示例中工作,但您想用-ne它来比较整数。

利用shellcheck