Android

คำสั่งกรณี Bash

[S3, E6] Command Line Heroes: Heroes in a Bash Shell

[S3, E6] Command Line Heroes: Heroes in a Bash Shell

สารบัญ:

Anonim

โดยทั่วไปคำสั่ง Bash case จะใช้เพื่อทำให้เงื่อนไขที่ซับซ้อนง่ายขึ้นเมื่อคุณมีตัวเลือกที่แตกต่างกันหลายตัว การใช้คำสั่ง case แทนการซ้อนกันถ้าคำสั่งจะช่วยให้คุณทำให้ bash script อ่านง่ายขึ้นและง่ายต่อการดูแลรักษา

คำสั่งกรณี Bash มีแนวคิดที่คล้ายกันกับคำสั่ง Javascript หรือ C switch ข้อแตกต่างที่สำคัญคือคำสั่ง Bash แตกต่างจากคำสั่ง C ซึ่งไม่ได้ค้นหาการจับคู่รูปแบบต่อไปเมื่อพบคำสั่งหนึ่งและดำเนินการคำสั่งที่เกี่ยวข้องกับรูปแบบนั้น

ในบทช่วยสอนนี้เราจะกล่าวถึงพื้นฐานของคำสั่ง Bash case และแสดงวิธีใช้มันในเชลล์สคริปต์ของคุณ

ไวยากรณ์คำสั่งกรณีและปัญหา

คำสั่งกรณี Bash ใช้แบบฟอร์มต่อไปนี้:

case EXPRESSION in PATTERN_1) STATEMENTS;; PATTERN_2) STATEMENTS;; PATTERN_N) STATEMENTS;; *) STATEMENTS;; esac

  • แต่ละคำสั่ง case เริ่มต้นด้วยคีย์เวิร์ด case ตามด้วยนิพจน์เคสและคีย์เวิร์ด in คำสั่งนั้นลงท้ายด้วยคำสำคัญ esac คุณสามารถใช้หลายรูปแบบคั่นด้วย | ผู้ประกอบการ ตัวดำเนินการ ) ยกเลิกรายการรูปแบบรูปแบบสามารถมีอักขระพิเศษรูปแบบและคำสั่งที่เกี่ยวข้องเรียกว่าส่วนคำสั่งข้อแต่ละข้อต้องสิ้นสุดด้วย ;; คำสั่งที่สอดคล้องกับรูปแบบแรกที่ตรงกับนิพจน์จะถูกดำเนินการมันเป็นวิธีปฏิบัติทั่วไปในการใช้สัญลักษณ์ดอกจัน ( * ) เป็นรูปแบบสุดท้ายเพื่อกำหนดกรณีเริ่มต้น รูปแบบนี้จะตรงกันเสมอหากไม่มีรูปแบบใดที่ตรงกับสถานะการส่งคืนจะเป็นศูนย์ มิฉะนั้นสถานะการส่งคืนคือสถานะออกของคำสั่งที่ดำเนินการ

ตัวอย่างคำชี้แจงกรณี

นี่คือตัวอย่างการใช้คำสั่ง case ใน bash script ที่จะพิมพ์ภาษาราชการของประเทศที่ระบุ:

languages.sh

#!/bin/bash echo -n "Enter the name of a country: " read COUNTRY echo -n "The official language of $COUNTRY is " case $COUNTRY in Lithuania) echo -n "Lithuanian";; Romania | Moldova) echo -n "Romanian";; Italy | "San Marino" | Switzerland | "Vatican City") echo -n "Italian";; *) echo -n "unknown";; esac

บันทึกสคริปต์ที่กำหนดเองเป็นไฟล์และเรียกใช้จากบรรทัดคำสั่ง

bash languages.sh

สคริปต์จะขอให้คุณป้อนประเทศ ตัวอย่างเช่นถ้าคุณพิมพ์“ ลิทัวเนีย” มันจะจับคู่รูปแบบแรกและคำสั่ง echo ในข้อนั้นจะถูกดำเนินการ

สคริปต์จะพิมพ์ผลลัพธ์ต่อไปนี้:

Enter the name of a country: Lithuania The official language of Lithuania is Lithuanian

Enter the name of a country: Argentina The official language of Argentina is unknown

ข้อสรุป

ตอนนี้คุณควรมีความเข้าใจวิธีเขียนคำสั่ง bash case อย่างดี พวกเขามักจะใช้เพื่อส่งผ่านพารามิเตอร์ไปยังเชลล์สคริปต์จากบรรทัดคำสั่ง ตัวอย่างเช่นสคริปต์ init กำลังใช้คำสั่ง case สำหรับการเริ่มหยุดหรือรีสตาร์ทเซอร์วิส

bash terminal