Bash
如何使命令子集成為有條件的?
我在尋找問題的直接答案時遇到問題,可能是因為我不知道如何表達它或正確的術語。
我正在尋找如何使鏈中的命令子集成為“或者”
如在
A && B && (C || D) && E && F
前一個命令的結果決定下一個命令是否觸發。
在這種情況下,它是一個
chef
命令knife vault create
這會在嘗試創建已存在的保管庫時導致出現中斷錯誤的問題。所以我想做
knife vault update
如果
knife vault create
腳本出錯這是一個更大的概述
command1 && \ command2 && \ (knife vault create or knife vault update) && \ command4 && \ continuing...
由於到目前為止我正在製作的腳本中的情況很少(1),我想保留格式而不是突然以
if
/else
或“更高級”的東西開頭。
command1 && command2 && { knife vault create || knife vault update; } && command4 && # ...
例子:
echo command1 && echo command2 && { echo knife vault create || echo knife vault update; } && echo command4 && exit
輸出:
command1 command2 knife vault create command4
echo command1 && false && { echo knife vault create || echo knife vault update; } && echo command4 && exit
輸出:
command1
if
聲明:if echo command1 && false; then echo knife vault create || echo knife vault update && echo command4 && exit fi