我对 shell 脚本很陌生。
当我查看一些为ksh ( #!/bin/ksh
)编写的代码时,我看到在一个脚本中else if
也有elif
使用。
那么,shell 脚本中else if
和之间有什么区别elif
?
我尝试用一句话来回答:如果您使用,elif
则处理一个 if-clause,如果您使用else if
两个if-clause。
看看这些简单的例子:
testone() {
if [[ $CASE == 1 ]]; then
echo Case 1.
elif [[ $CASE == 2 ]]; then
echo Case 2.
else
echo Unknown case.
fi
}
Run Code Online (Sandbox Code Playgroud)
这在形式上是一个 if 子句(整洁的缩进有时是有意义的),因为您可以看到每个案例都处于相同的层次结构级别。
现在,相同的功能else if
:
testtwo() {
if [[ $CASE == 1 ]]; then
echo Case 1.
else
if [[ $CASE == 2 ]]; then
echo Case 2.
else
echo Unknown case.
fi
fi
}
Run Code Online (Sandbox Code Playgroud)
形式上,您有两个级联的 if 子句和相应的两个结束fi
语句。else if
请注意,如果我写一行(如您的问题)或两行(如我的示例),则没有区别。
我猜测为什么在同一个脚本中使用这两种形式:如果您已经编写了完整的 if 子句,但需要(逻辑原因)将其复制/剪切并粘贴到现有的 if 子句中,那么您最终会得到else if
. 但是,当您从头开始编写完整的 if 子句时,您可能会使用恕我直言更易于阅读的形式elif
。
归档时间: |
|
查看次数: |
26944 次 |
最近记录: |