hell指令碼報錯:"[: =: unary operator expected"
在匹配字串相等時,我用了類似這樣的語句: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中有沒有雙引號在很多情況下是一致的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25148509/viewspace-715868/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell指令碼報錯:"[: =: unary operator expected"指令碼
- shell指令碼報錯:[: missing `]‘指令碼
- sh指令碼執行報錯指令碼
- Python指令碼典型報錯(1)Python指令碼
- Python指令碼典型報錯(2)Python指令碼
- hell
- 執行指令碼diagcollection.pl報錯指令碼GC
- IE 頁面不正常顯示 錯誤指令碼不報錯 指令碼除錯相關指令碼除錯
- 【Shell】fix 1032報錯資訊的指令碼指令碼
- mysql 5.7啟動報錯"Expected to open undo tablespaces but was able to find only 0"MySql
- shell 指令碼報錯^M: syntax error near unexpected token指令碼Error
- React報錯之React.Children.only expected to receive single React element childReact
- shell指令碼中如何報錯即刻退出以及如何獲取子shell指令碼的錯誤資訊:set -o errexit指令碼
- yolov5 train報錯:TypeError: expected np.ndarray (got numpy.ndarray)YOLOAIErrorGo
- Ajax 報錯jquery-3.3.1.min.js:2 Uncaught TypeError: Cannot use 'in' operator to seajQueryJSError
- 解決vue-cli element-ui打包報錯Unexpected token: operator (>)VueUI
- std::sort 錯誤"Expression : invalid operator <"Express
- oracle報表相關指令碼Oracle指令碼
- 執行shell指令碼報錯:-bash: ./test1.sh: /bin/bash^M: ...指令碼
- mysql執行sql指令碼報錯ERROR 1366 (HY000) 解決MySql指令碼Error
- 自定義容器啟動指令碼報錯:exec user process caused "no such file or directory"指令碼
- 【Azure Service Bus】建立 ServiceBus 的Terraform指令碼報錯GetAuthorizationRule: Invalid inputORM指令碼
- numpy中的numpy boolean substract,the '-' operator 錯誤Boolean
- vue報錯:[Vue warn]: Invalid prop: type check failed for prop "value". Expected Number, got String....VueAIGo
- 解決小程式 callback hell
- zabbix報警指令碼(wechat,email)指令碼AI
- 生成awr報告的指令碼指令碼
- 安裝RAC 執行root.sh指令碼報錯,解決辦法指令碼
- xcode6編譯錯誤,提示Expected a typeXCode編譯
- inconsistent datatypes: expected - got CLOB錯誤一例Go
- LoadRunner錄製:指令碼除錯指令碼除錯
- shell 指令碼的除錯問題指令碼除錯
- 使用pdb除錯python指令碼除錯Python指令碼
- DB2:SQL1024N和ksh: 0403-057 Syntax error: `(' is not expected.報錯DB2SQLError
- 帶入gRPC:Unary and Stream interceptorRPC
- hp-ux環境sqlplus中使用@執行sql指令碼報錯UXSQL指令碼
- 【Oracle指令碼】-很不錯的Windows下資料庫備份EXP指令碼Oracle指令碼Windows資料庫
- 自動生成ASH報告指令碼指令碼