在匹配字符串相等時,我用了相似這樣的語句:if [ $STATUS == "OK" ]; then echo "OK"fi在運行時出現了 [: =: unary operator expected 的錯誤,就一直找不到緣由,嘗試了刪除等號兩側的空格和括號裏的空格都無論用,最後baidu了一下,才找到緣由。把語句改爲這樣就不會出錯了:if [[ $STATUS = "OK" ]]; then echo "OK"fi究其緣由,是由於若是變量STATUS值爲空,那麼就成了 [ = "OK"] ,顯然 [ 和 "OK" 不相等而且缺乏了 [ 符號,因此報了這樣的錯誤。固然不老是出錯,若是變量STATUS值不爲空,程序就正常了,因此這樣的錯誤仍是很隱蔽的。或者用下面的方法也能避免這種錯 誤:if [ "$STATUS"x == "OK"x ]; then echo "OK"fi固然,x也能夠是其餘字符。順便提一點,shell中有沒有雙引號在不少狀況下是一致的。 shell