1. 程式人生 > >shell腳本執行報錯[: 0: unary operator expected

shell腳本執行報錯[: 0: unary operator expected

The 轉換 set [ ] 但是 perl per shell腳本 正常

在執行shell腳本,if判斷語句報錯

#!/bin/bash

if [ 0 == $testNum ]
then
    echo "Check Result:0"
fi

  

testNum使用時沒有定義,無賦值是空(原本是有定義的,只是筆誤寫錯類似tsetNum了),執行轉換後實際為

if [ 0 ==  ]

不相等,且少[符號錯誤;規避如下

#!/bin/bash

if [[ 0 == $testNum ]]
then
    echo "Check Result:0"
fi

使用“[[ ]]”進行判斷;或者添加一個字符

#!/bin/bash

if [ "0"x == "$testNumx"x ]
then
    echo "Check Result:0"
fi

  

其實,針對我所犯的錯誤,當然還是使用“[]”普通判斷為好了,可以檢查錯誤;但是這種實現多是用來判斷查詢的值或者其他條件賦予的值是否滿足條件,存在為空是正常的場景,所以要完善自己代碼。

詳細含義待補充  

shell腳本執行報錯[: 0: unary operator expected