ฉันพยายามที่คำตอบในหนึ่งประโยค: ถ้าคุณใช้elif
คุณจัดการกับหนึ่งถ้าข้อถ้าคุณใช้else if
กับสองถ้า-ข้อ
ดูตัวอย่างง่ายๆเหล่านี้:
testone() {
if [[ $CASE == 1 ]]; then
echo Case 1.
elif [[ $CASE == 2 ]]; then
echo Case 2.
else
echo Unknown case.
fi
}
นี่เป็นเรื่องเป็นทางการ (บางครั้งการเยื้องที่เป็นระเบียบทำให้เข้าใจได้) หนึ่งประโยคถ้าคุณสามารถดูได้ว่าแต่ละกรณีอยู่ในระดับลำดับชั้นเดียวกัน
ตอนนี้ฟังก์ชั่นเดียวกันกับ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-clauses สองประโยคอย่างเป็นทางการและตามด้วยfi
คำสั่งปิดสองรายการ โปรดทราบว่ามันไม่ได้ทำให้ความแตกต่างที่นี่ถ้าฉันเขียนelse if
ในหนึ่งบรรทัด (ตามคำถามของคุณ) หรือสองบรรทัด (เช่นในตัวอย่างของฉัน)
ฉันเดาว่าทำไมทั้งสองรูปแบบที่ใช้ในสคริปต์เดียวกัน: ถ้าคุณมีอยู่แล้วถ้าประโยคสมบูรณ์เขียน แต่ความต้องการ (เหตุผลตรรกะ) เพื่อคัดลอก / else if
ตัดและวางที่เป็นที่มีอยู่ถ้าข้อคุณจะจบลงด้วย แต่เมื่อคุณเขียนเสร็จสมบูรณ์หากข้อจากรอยขีดข่วนคุณอาจใช้ IMHO elif
ง่ายต่อการอ่านรูปแบบ
#!/bin/bash