shell腳本報(bào)錯(cuò):"[: =: unary operator expected"解決辦法
shell腳本報(bào)錯(cuò):"[: =: unary operator expected"解決辦法
在匹配字符串相等時(shí),我用了類似這樣的語(yǔ)句:
if [ $STATUS == "OK" ]; then echo "OK" fi
在運(yùn)行時(shí)出現(xiàn)了 [: =: unary operator expected 的錯(cuò)誤,就一直找不到原因,嘗試了刪除等號(hào)兩側(cè)的空格和括號(hào)里的空格都不管用,最后baidu了一下,才找到原因。把語(yǔ)句改成這樣就不會(huì)出錯(cuò)了.
if [[ $STATUS = "OK" ]]; then echo "OK" fi
究其原因,是因?yàn)槿绻兞縎TATUS值為空,那么就成了 [ = "OK"] ,顯然 [ 和 "OK" 不相等并且缺少了 [ 符號(hào),所以報(bào)了這樣的錯(cuò)誤。當(dāng)然不總是出錯(cuò),如果變量STATUS值不為空,程序就正常了,所以這樣的錯(cuò)誤還是很隱蔽的。
或者用下面的方法也能避免這種錯(cuò) 誤:if [ "$STATUS"x == "OK"x ]; then echo "OK"fi。當(dāng)然,x也可以是其他字符。順便提一點(diǎn),shell中有沒(méi)有雙引號(hào)在很多情況下是一致的。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
虛擬機(jī)克隆linux centos6.5系統(tǒng)網(wǎng)卡配置圖文教程
這篇文章主要為大家詳細(xì)介紹了虛擬機(jī)克隆linux centos6.5系統(tǒng)網(wǎng)卡配置的圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09解決Linux可執(zhí)行文件目錄下明明存在*.so文件,但卻提示找不到
這篇文章主要介紹了解決Linux可執(zhí)行文件目錄下明明存在*.so文件,但卻提示找不到問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Ubuntu無(wú)法連接網(wǎng)絡(luò)的解決辦法
這篇文章主要為大家詳細(xì)介紹了虛擬機(jī)中Ubuntu無(wú)法連接網(wǎng)絡(luò)的有效解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Linux 在Shell腳本中使用函數(shù)實(shí)例詳解
這篇文章主要介紹了Linux 在Shell腳本中使用函數(shù)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06詳解Linux 服務(wù)管理兩種方式service和systemctl
systemd是Linux系統(tǒng)最新的初始化系統(tǒng)(init),作用是提高系統(tǒng)的啟動(dòng)速度,盡可能啟動(dòng)較少的進(jìn)程,盡可能更多進(jìn)程并發(fā)啟動(dòng)。這篇文章主要介紹了Linux 服務(wù)管理兩種方式service和systemctl,需要的朋友可以參考下2019-09-09centOS7下mysql插入中文字符報(bào)錯(cuò)問(wèn)題解決方法
本篇文章主要介紹了centOS7下mysql插入中文字符報(bào)錯(cuò)問(wèn)題解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02