簡體   English   中英

Shell 腳本:如何在 if else 語句中執行多個條件

[英]Shell Scripting: How to do multiple conditions in if else statement

我應該如何用多個條件來表達 if 語句:

if [ <T/F Condition> ] && [ <T/F Condition> ] && [ <T/F Condition> ]

或者

if [ <T/F Condition> && <T/F Condition> && <T/F Condition>]

?

正如“man test”所展示的那樣,“-a”代表“and”。

例如。:

if [ <T/F Condition> -a <T/F Condition> -a <T/F Condition> ]

也要注意間距。

&&是 shell 運算符,在cmd1 && cmd2中,它告訴 shell 如果第一個命令成功,則只運行第二個命令。

因此,這有效,並且可以滿足您的要求:

if [ "$x" = a ] && [ "$y" = b ]; then ...

然而,在這:

if [ "$x" = a && "$y" = b ]; then ...

要運行的命令將是[ "$x" = a and "$y" = b ] ,其中第一個將給出缺少]參數的錯誤。 (在這里,請記住[是一個常規命令,類似於echo左右,它只是有一個有趣的名字。)

此外,您應該避免這種情況:

if [ "$x" = a -a "$y" = b ]; then ...

即使它在一些簡單的情況下也可以在某些 shell 中工作。 當變量包含字符串時,這與解析問題有關! (否定)或其他作為[的運算符。 同樣,由於[是一個常規命令,而不是特殊的 shell 語法,它無法分辨哪個 arguments 來自變量,哪些是硬編碼運算符。

暫無
暫無

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

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