ในบทความนี้ เราจะอธิบายวิธีใช้คำสั่ง Bash case พร้อมตัวอย่างใน Linux OS
ไวยากรณ์ของคำสั่งกรณีทุบตี
นี่คือไวยากรณ์สำหรับคำสั่ง bash case:
ไวยากรณ์:
กรณี $ ตัวแปร ใน
ลวดลาย-1)
คำสั่ง
;;
ลวดลาย-2)
คำสั่ง
;;
ลวดลาย-3)
คำสั่ง
;;
แบบ-N)
คำสั่ง
;;
*)
คำสั่ง
;;
esac
- คำสั่ง case เริ่มต้นด้วย case และลงท้ายด้วย esac
- ) ใช้เพื่อยุติรูปแบบ หากต้องการแยกหลายรูปแบบ | ใช้ตัวดำเนินการดังที่แสดงด้านล่าง:
ลวดลาย-1|ลวดลาย-2)
คำสั่ง
....
....
;;
ลวดลาย-3|ลวดลาย-4)
คำสั่ง
....
....
;;
- รูปแบบที่มีคำสั่งเรียกว่าอนุประโยคและทุกประโยคลงท้ายด้วย (;;)
- สัญลักษณ์ดอกจัน* สามารถใช้เพื่อกำหนดกรณีเริ่มต้นได้
- คำสั่งกรณีทุบตีจับคู่อินพุต $variable กับรูปแบบที่แตกต่างกันก่อน หากรูปแบบตรงกัน ชุดคำสั่งที่เกี่ยวข้องจนถึงเครื่องหมายอัฒภาคคู่ (;;) จะถูกดำเนินการ
ตัวอย่างที่ 1:
ตัวอย่างต่อไปนี้เกี่ยวกับใบแจ้งยอดเงินสด bash ซึ่งขอให้ผู้ใช้ป้อนชื่อเดือน หากอินพุตนี้ตรงกับรูปแบบที่กำหนดไว้ในสคริปต์ คำสั่ง echo ที่เกี่ยวข้องจะถูกดำเนินการ คำสั่ง echo จะแสดงข้อมูลเกี่ยวกับงานระดับนานาชาติของเดือนนั้นๆ
ในการใช้สคริปต์นี้ ให้สร้างไฟล์ข้อความอย่างง่าย ตั้งชื่อด้วยนามสกุลไฟล์ .sh เพิ่มสคริปต์ต่อไปนี้และบันทึก จากนั้นกำหนดไฟล์นี้เพื่อดำเนินการอนุญาตโดยเรียกใช้คำสั่งต่อไปนี้ใน Terminal:
$sudo chmod 777ชื่อไฟล์.shในการรันไฟล์ bash นี้ ให้รัน ./ ตามด้วยชื่อไฟล์ bash ดังนี้:
$./ชื่อไฟล์.sh
เมื่อคุณรันสคริปต์ คุณจะถูกขอให้ป้อนชื่อของเดือนเป็นข้อมูลเข้า หากชื่อเดือนตรงกัน จะแสดงเหตุการณ์ที่เกี่ยวข้องในเดือนนั้น ๆ มิฉะนั้น จะไม่พบข้อมูลที่ตรงกัน
โปรดทราบว่า shopt -s nocasematch ใช้เพื่อจับคู่รูปแบบโดยไม่คำนึงถึงกรณี
ร้านค้า -NSnocasematchโยนออก 'ใส่ชื่อเดือน'
อ่านเดือน
กรณี $เดือน ใน
มกราคม)
โยนออก ' 24 มกราคม วันการศึกษาสากล'
;;
กุมภาพันธ์)
โยนออก ' 20 กุมภาพันธ์วันความยุติธรรมทางสังคมโลก .'
;;
มีนาคม)
โยนออก '8 มีนาคม วันสตรีสากล'
;;
เมษายน)
โยนออก '7 เมษายน วันอนามัยโลก'
;;
อาจ)
โยนออก 'วันครอบครัวสากล 15 พฤษภาคม'
;;
มิถุนายน)
โยนออก '20 มิถุนายน วันผู้ลี้ภัยโลก'
;;
กรกฎาคม)
โยนออก '11 กรกฎาคม วันประชากรโลก'
;;
*)
โยนออก 'ไม่พบข้อมูลที่ตรงกัน'
;;
esac
ตัวอย่างที่ 2:
ตัวอย่างต่อไปนี้เกี่ยวกับใบแจ้งยอดเงินสด bash ที่ขอให้ผู้ใช้ป้อนชื่อประเทศ หากอินพุตนี้ตรงกับรูปแบบที่กำหนดไว้ในสคริปต์ คำสั่ง echo ที่เกี่ยวข้องจะถูกดำเนินการ คำสั่ง echo จะแสดงข้อมูลเกี่ยวกับเมืองหลวงของประเทศนั้นๆ
ในการใช้สคริปต์นี้ ให้ทำตามวิธีการเดียวกันกับที่อธิบายไว้ในตัวอย่างข้างต้น เมื่อเสร็จแล้ว รันสคริปต์ และคุณจะถูกขอให้ป้อนชื่อของประเทศเป็นข้อมูลเข้า หากชื่อประเทศตรงกับชื่อประเทศที่กำหนดไว้ล่วงหน้า ชื่อนั้นจะแสดงชื่อตัวพิมพ์ใหญ่ของประเทศนั้น มิฉะนั้น ระบบจะแสดงข้อความ 'ไม่มีข้อมูล'
#!/bin/bashร้านค้า -NSnocasematch
โยนออก -NS 'ป้อนชื่อประเทศ: '
อ่านประเทศ
โยนออก -NS 'เมืองหลวงของ$ประเทศเป็น '
กรณี $ประเทศ ใน
ปากีสถาน)
โยนออก -NS 'อิสลามาบัด'
;;
ฟิจิ)
โยนออก -NS 'แห้ง'
;;
สหราชอาณาจักร| 'ประเทศอังกฤษ')
โยนออก -NS 'ลอนดอน'
;;
ไก่งวง)
โยนออก -NS 'อังการา'
;;
ใช้)
โยนออก -NS 'วอชิงตันดีซี'
;;
*)
โยนออก -NS 'ไม่มีข้อมูล'
;;
esac
โยนออก ''
คำสั่งกรณีทุบตีทำให้สคริปต์ทุบตีอ่านและเข้าใจได้ง่ายขึ้น ในบทความนี้ เราได้กล่าวถึงวิธีการเขียนและใช้คำสั่งกรณีทุบตี ตอนนี้คุณสามารถเขียนคำสั่ง if-else แบบหลายระดับได้อย่างง่ายดายและง่ายดายโดยใช้คำสั่ง case