簡體   English   中英

bash if語句中的錯誤:預期條件二進制運算符

[英]Error in bash if statement: Conditional binary operator expected

我的bash腳本中有一個if語句,如下所示:

if [[ eb status my-env-staging-worker | grep 'Green' -ne 0 ] || [ eb status my-env-staging-web | grep 'Green' -ne 0 ]]

基本上,如果第一個或第二個eb status命令沒有字符串Green我想執行其他操作。

但是我得到以下錯誤:

狀態腳本附近的條件二進制運算符預期語法錯誤返回了退出代碼2

你能告訴我怎么了嗎?

[[[不用於分組。 它們是獨立的命令。 代替if [[ cmd1 -ne 0 ] || [ cmd2 -ne 0 ]] if [[ cmd1 -ne 0 ] || [ cmd2 -ne 0 ]] ,省去括號和測試,只寫if cmd1 || cmd2 if cmd1 || cmd2

if eb status my-env-staging-worker | grep -q 'Green' || eb status my-env-staging-web | grep -q 'Green'

我添加了-q來抑制grep的輸出,因為您只關心返回碼。

如果要反轉條件,請輸入:

if ! eb status my-env-staging-worker | grep -q 'Green' && ! eb status my-env-staging-web | grep -q 'Green'

要么

if ! { eb status my-env-staging-worker | grep -q 'Green' || eb status my-env-staging-web | grep -q 'Green'; }

在這里您可以看到{}用於分組。 花括號和括號是bash的分組標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM