Cette question concerne spécifiquement les scripts shell, mais pourraient être sur tout langage de programmation.
Y a-t-il une différence entre l'utilisation de plusieurs instructions if
et à l'aide de Elif
déclarations dans les scripts shell? Et une déclaration case
ne fonctionnerait pas dans ma situation.
Oui potentiellement. Considérez ceci (C #, Java, peu importe):
int x = GetValueFromSomewhere();
if (x == 0)
{
// Something
x = 1;
}
else if (x == 1)
{
// Something else...
}
vs ceci:
int x = GetValueFromSomewhere();
if (x == 0)
{
// Something
x = 1;
}
if (x == 1)
{
// Something else...
}
Dans le premier cas, seulement n de "quelque chose" ou "quelque chose d'autre ..." se produira. Dans le second cas, les effets secondaires du premier bloc rendent la condition dans le deuxième bloc vrai.
Ensuite, pour un autre exemple, les conditions peuvent ne pas être mutuellement exclusives pour commencer par:
int x = ...;
if (x < 10)
{
...
}
else if (x < 100)
{
...
}
else if (x < 1000)
{
...
}
Si vous vous débarrassez de "autre" ici, alors dès qu'une condition est appariée, le reste aussi.
Cela concerne l'efficacité et vos besoins. Si des déclarations sont exécutées indépendantes les unes des autres. Chacun fonctionnera. Sinon si les instructions n'exécutent que si la précédente si elle échoue.