Linux

需要條件二元運算符

  • April 3, 2020
var="$(command1 -l '$var2' -c 'command2|grep -c "search"')"
if [[ var !=0 ]]; then
fi

為什麼我會得到“預期的條件二元運算符”。我已經搜尋過了。我看到

$$ [ $$] 是一個測試語句,但為什麼它不起作用?

  1. 當你呼叫它時,你在 var 前面失去$了,就像你寫的一樣,它會是字面上var的 .
  2. 在使用或與您無法控制的變數一起使用時,請考慮您的腳本可能存在的漏洞。在您的情況下,最好使用.[[ ... ]]``(( ... ))``[ "$var" -ne 0 ]
  3. 您在!=and之間缺少一個空格0(這是錯誤的根源!)
  4. !=是一個字元串比較運算符,雖然它可能適用於您的範例,但您想使用它-ne來比較整數。

使用shellcheck

引用自:https://unix.stackexchange.com/questions/577681