linux if / elif / fi命令

时间:2012-10-01 15:42:47

标签: linux bash if-statement sh

我有一个问题。如果我的if语句为true,是否会跳过elif检查并直接转到fi,还是会检查elif语句?

脚本示例:

if [ argument1 || argument2 ]  
     then  
          do something.  
elif [ argument2 || argument3 ]  
     then  
          do something.  
elif [ argument2 || argument4 ]  
     then  
          do somthing.  
else  
          do somthing else.  
fi  

我的问题是,如果我的第一个elif语句为真,我仍希望检查if语句。如果我的第一个elif语句为elif,我还希望检查true语句...等等。基本上我希望我的所有if和{{1}所有语句都要检查。

NB。我意识到我可以更改所有elifelif语句,这可能会解决我的问题,因为会检查所有if语句。但这个问题也是出于对ifif陈述的好奇和更好的了解。

如果您需要更多信息,请与我们联系。

2 个答案:

答案 0 :(得分:4)

如果其中一个匹配,则不会检查elif语句。 elif是“else if”的缩写;这意味着如果前一个条件不匹配,你应该检查这个其他条件。

正如您所说,您可以为您的用例使用多个if语句。

答案 1 :(得分:1)

一旦满足条件,if语句就会终止,并且不会检查剩余的elif条件。

示例:

if echo foo
then
   echo "in foo"
elif echo bar
then
   echo "in bar"
fi

打印

foo
in foo

如果你想要全部检查它们,那么你需要按照你的建议将它分成多个if语句。