这个问题专门与 shell 脚本有关,但可能与任何编程语言有关。
使用多个 if
有什么区别吗?语句和使用 elif
shell 脚本中的语句?而且,一个 case
声明在我的情况下不起作用。
请您参考如下方法:
是的,有可能。考虑一下(C#、Java 等等):
int x = GetValueFromSomewhere();
if (x == 0)
{
// Something
x = 1;
}
else if (x == 1)
{
// Something else...
}
与这个:
int x = GetValueFromSomewhere();
if (x == 0)
{
// Something
x = 1;
}
if (x == 1)
{
// Something else...
}
在第一种情况下,只会出现“Something”或“Something else...”中的一个。在第二种情况下,第一个块的副作用使第二个块中的条件为真。
然后再举一个例子,条件可能不是相互排斥的:
int x = ...;
if (x < 10)
{
...
}
else if (x < 100)
{
...
}
else if (x < 1000)
{
...
}
如果你去掉这里的“else”,那么只要一个条件匹配,其余的也会匹配。