Я намагаюся відповісти в одному реченні: Якщо ви використовуєте elif
ви маєте справу один пункт if , якщо ви використовуєте else if
с дві пропозиції if .
Подивіться на ці прості приклади:
testone() {
if [[ $CASE == 1 ]]; then
echo Case 1.
elif [[ $CASE == 2 ]]; then
echo Case 2.
else
echo Unknown case.
fi
}
Це формально (охайний абзац має сенс іноді) один 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
}
У вас є формально два каскадних if-статей і відповідно два закриття fi
заяви. Plaese відзначає, що тут немає ніякого значення, якщо я пишу else if
в одному рядку (як у вашому питанні) або в двох рядках (як у моєму прикладі).
Моя здогадка, чому обидві форми використовуються в одному сценарії: Якщо у вас вже є повний, якщо написано, але потрібно (логічні причини) копіювати / вирізати & amp; вставте це в існуючу статтю if, ви закінчите else if
. Але коли ви пишете повний if-clause з нуля, ви, напевно, використовуєте IMHO простіше для читання форми elif
.
#!/bin/bash