Je m'efforce de répondre en une phrase : Si vous utilisez elif
, vous traitez une clause if, si vous utilisez else if
, vous traitez deux clauses if.
Regardez ces exemples simples :
testone() {
if [[ $CASE == 1 ]]; then
echo Cas 1.
elif [[ $CASE == 2 ]]; then
echo Cas 2.
else
echo Cas inconnu.
fi
}
C'est formellement (l'indentation soignée a parfois du sens) une clause if comme vous pouvez voir que chaque cas est au même niveau hiérarchique.
Maintenant, la même fonction avec else if
:
testtwo() {
if [[ $CASE == 1 ]]; then
echo Cas 1.
else
if [[ $CASE == 2 ]]; then
echo Cas 2.
else
echo Cas inconnu.
fi
fi
}
Vous avez formellement deux cascades de clauses if et en conséquence deux instructions de fermeture fi
. Veuillez noter que cela ne fait aucune différence ici si j'écris else if
sur une ligne (comme dans votre question) ou sur deux lignes (comme dans mon exemple).
Je suppose pourquoi les deux formes sont utilisées dans le même script : Si vous avez déjà écrit une clause if complète, mais avez besoin (par logique) de copier/couper & coller cela dans une clause if existante, vous vous retrouvez avec else if
. Mais lorsque vous écrivez la clause if complète à partir de zéro, vous utilisez probablement la forme elif
qui, selon moi, est plus simple à lire.