我正在嘗試使用Logical & &和||的等價性。運營商到'如果其他情況'條件,我想驗證,如果這種理解是正確的。如果條件 考慮這一點,相關的礦山表示如果然後通過邏輯&&和||表示
if (flag="$value") then
function1 (p1)
rc=$?
if ("$rc"=0) then
function2 (p2)
fi
elif (flag="$value2") then
function1 (p1)
rc=$?
if ("$rc"=0) then
function2 (p2)
fi
else
echo "Msg"
fi
寫在邏輯& &和術語||作爲
(([ flag = "$value" ] && function1 (p1)) && function2 (p2)) ||
(([ flag = "$value2" ] && function1 (p2)) && function2 (p2)) ||
echo "message"
我的Q的是:
- 可以在上述方法始終使用。有什麼需要注意的事項和注意事項
- 在()括號內的其他地方有一些談話,說明一個新的shell的變量不可用於父進程。我想知道如何將這些運算符分組來指示優先級,如果不是那些()括號。
@Chepner。 Thx的澄清。 所以在一個case語句看起來像這樣
optf=false
opte=false
optp=false
case $opt in
p) ...
(($opte || $optf) && [ -n "$s1" ]) && echo "error message"
以上可改寫爲
{{ $opte || $optf } ; && [ -n "$s1" ] ; } && echo "error message"
,它會因此翻譯這樣的邏輯:當您遇到-p選項,檢查是否OPTE或optf是真的。如果其中任何一個爲真,並且s1有值,則輸入錯誤消息。 會是這種情況,還是有一些漏洞被堵塞。 Gotcha-我沒有注意到「;」 。與{}; - 我應該能夠按我想要的方式分派我的運營商?
它是哪個外殼? – anubhava
請從有效的shell開始。你的'if ... else'語句不是。 – chepner
你好,謝謝。它的KSH – user1874594