วิธีใช้คำสั่ง Bash case

How Use Bash Case Statement



คำสั่งกรณีทุบตีคล้ายกับคำสั่ง if-else แต่ง่ายกว่าและง่ายกว่า ช่วยจับคู่ตัวแปรหนึ่งตัวกับหลายค่า ใช้เมื่อคุณต้องการคำสั่ง IF-else ที่มีคำสั่ง Elif จำนวนหนึ่ง... มันค่อนข้างคล้ายกับคำสั่ง switch ใน C แต่คำสั่ง bash case จะไม่เดินหน้าเมื่อรูปแบบตรงกัน

ในบทความนี้ เราจะอธิบายวิธีใช้คำสั่ง 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