我有一个问题。如果我的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。我意识到我可以更改所有elif
到elif
语句,这可能会解决我的问题,因为会检查所有if
语句。但这个问题也是出于对if
和if
陈述的好奇和更好的了解。
如果您需要更多信息,请与我们联系。
答案 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语句。