![](/img/trans.png)
[英]bash shell [[ operator failed with error: "conditional binary operator expected"
[英]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.