ในการเขียนสคริปต์เชลล์ คำสั่ง Bash if มีบทบาทสำคัญโดยอนุญาตให้โปรแกรมเมอร์สร้างเส้นทางการดำเนินการแบบมีเงื่อนไขตามสถานการณ์ที่แตกต่างกัน โดยพื้นฐานแล้ว หากคำสั่งช่วยให้เราสามารถตัดสินใจภายในสคริปต์ Bash โดยพิจารณาจากปัจจัยต่างๆ เช่น ผลการทดสอบ ข้อมูลของผู้ใช้ หรือสถานะของระบบ มันเหมือนกับวิธีการสำรวจความเป็นไปได้ต่างๆ
เมื่อใช้สคริปต์ Bash คำสั่ง if จะเป็นไปตามโครงสร้างเฉพาะ โดยทั่วไปจะขึ้นต้นด้วย “if” คำสำคัญ ตามด้วยเงื่อนไขที่ต้องประเมิน “แล้ว” และคำสั่งหนึ่งคำสั่งขึ้นไปที่จะดำเนินการหากเงื่อนไขเป็นจริง
เพื่อให้สิ่งต่าง ๆ มีความยืดหยุ่นมากขึ้น คำสั่ง if ยังสามารถรวมตัวเลือก “เอลฟ์คำสั่ง ” (else if) ซึ่งจะมีผลเมื่อเงื่อนไขเริ่มต้นเป็นเท็จ ช่วยให้เราสามารถทดสอบเงื่อนไขเพิ่มเติมและดำเนินการตามนั้น นอกจากนี้ คำสั่ง if สามารถมีคำสั่งเสริม “else” ซึ่งจะดำเนินการหากไม่มีเงื่อนไขใดที่ถือเป็นจริง
ด้วยการรวมคำสั่ง if เข้ากับคำสั่ง Bash และคุณสมบัติของเชลล์สคริปต์อื่นๆ โปรแกรมเมอร์จะสามารถสร้างสคริปต์ขั้นสูงที่สามารถทำให้งานและกระบวนการที่ซับซ้อนเป็นอัตโนมัติได้ ติดตามเพื่อค้นพบเพิ่มเติมเกี่ยวกับคำสั่ง Bash if รวมถึงไวยากรณ์ กรณีการใช้งาน และตัวอย่าง!
ทุบตีไวยากรณ์คำสั่ง If
ไวยากรณ์ Bash หมายถึงกฎที่ควบคุมโครงสร้างและไวยากรณ์ของคำสั่งและสคริปต์ที่เขียนด้วยภาษาเชลล์ Bash ไวยากรณ์ Bash ประกอบด้วยโครงสร้างและองค์ประกอบที่หลากหลาย เช่น:
- คำสั่ง: เหล่านี้เป็นโปรแกรมปฏิบัติการแต่ละรายการหรือเชลล์ในตัวที่ใช้ในการทำงานเฉพาะ คุณจะใช้เวลาส่วนใหญ่ในการจัดการกับการเขียนโปรแกรม Bash ด้วยประโยคที่น่ารักเหล่านี้
- ข้อโต้แย้ง: ค่าเหล่านี้คือค่าที่ส่งไปยังคำสั่งเพื่อระบุตัวเลือก พารามิเตอร์ หรือข้อมูลอินพุต คิดว่าเป็นเงื่อนไขที่กำหนดไว้สำหรับคำสั่งเพื่อระบุพารามิเตอร์การดำเนินการ
- ตัวแปร: สัญลักษณ์เหล่านี้เป็นสัญลักษณ์ที่แสดงค่าที่สามารถกำหนด จัดการ หรือใช้ในนิพจน์ได้ โดยทั่วไปจะใช้เพื่อกำหนดค่าที่ทั้งคำสั่งและอาร์กิวเมนต์ต้องจัดการ
- การเปลี่ยนเส้นทาง: นี่คือกระบวนการเปลี่ยนเส้นทางอินพุต เอาท์พุต หรือข้อผิดพลาดไปยังหรือจากไฟล์ อุปกรณ์ หรือคำสั่งอื่นๆ หากไม่มีสิ่งเหล่านี้ มีโอกาสสูงที่คำสั่งของคุณจะกำหนดเป้าหมายไปยังปลายทางที่ไม่ถูกต้อง และทำให้โค้ดของคุณเสียหาย
- ท่อ: นี่เป็นกลไกในการเชื่อมต่อเอาต์พุตของคำสั่งหนึ่งเข้ากับอินพุตของคำสั่งอื่น โดยทั่วไปจะใช้เพื่อดำเนินการบรรทัดคำสั่งแบบมีเงื่อนไขขั้นสูงในโปรแกรมขนาดใหญ่ และเพื่อสร้างบรรทัดคำสั่งแบบทอระหว่างกัน
- โครงสร้างการควบคุม: โครงสร้างเหล่านี้เป็นโครงสร้างที่ควบคุมโฟลว์การดำเนินการคำสั่ง เช่น ลูป เงื่อนไข และฟังก์ชัน การทำความเข้าใจโครงสร้างการควบคุมเป็นกุญแจสำคัญในการสร้างบรรทัดคำสั่งใหม่และช่วยให้โค้ดของคุณมีความลึกอีกระดับหนึ่ง
- ความคิดเห็น: สิ่งเหล่านี้คือคำอธิบายประกอบที่เชลล์ละเว้นและใช้ในการจัดทำเอกสารโค้ดหรือให้คำอธิบาย สิ่งเหล่านี้เป็นจุดอ้างอิงที่สำคัญเมื่อทำการวิเคราะห์และแก้ไขจุดบกพร่อง โดยเฉพาะอย่างยิ่งในโครงการกลุ่ม
ต้องเขียนไวยากรณ์ Bash อย่างถูกต้องเพื่อให้เชลล์ตีความและดำเนินการคำสั่ง ข้อผิดพลาดทางไวยากรณ์อาจทำให้เชลล์สร้างข้อความแสดงข้อผิดพลาดหรือพฤติกรรมที่ไม่คาดคิด
นี่คือ Bash if คำสั่งที่ใช้งานจริง:
if condition then command1 command2 ... commandN elif condition2 then commandA commandB ... commandC else commandX commandY ... commandZ fi
ในกรณีที่เรามีตรงนี้ “เงื่อนไข” หมายถึงการทดสอบที่ให้ผลลัพธ์ว่าเป็นจริงหรือเท็จ เมื่อเงื่อนไขเป็นจริง คำสั่งต่อมาที่ระบุหลังคีย์เวิร์ด "then" จะถูกดำเนินการ ตอนนี้ สมมติว่าเราต้องการประเมินเงื่อนไขเพิ่มเติมแทน เราสามารถใช้คีย์เวิร์ด “elif” เพื่อทำสิ่งนี้ได้ เป็นช่องทางในการพิจารณาความเป็นไปได้อีกอย่างหนึ่ง ตอนนี้หากไม่มีเงื่อนไขใดที่ถือเป็นจริง คำสั่งที่ระบุหลังคีย์เวิร์ด "else" จะเริ่มมีผล มันเหมือนกับแผนสำรอง สุดท้ายนี้ เพื่อระบุบทสรุปของคำสั่ง if เราใช้คีย์เวิร์ด "if"
คำสั่ง Bash ทำงานอย่างไร
เมื่อพูดถึงการเขียนสคริปต์ Bash คำสั่ง if จะค่อนข้างมีประโยชน์ในการชี้แนะการไหลของสคริปต์ตามผลลัพธ์ของการทดสอบแบบมีเงื่อนไข วัตถุประสงค์คือการประเมินสภาวะและหากพบว่าเป็นจริง จะดำเนินการชุดคำสั่งเฉพาะ
ตอนนี้ เรามาดูกันว่าสิ่งต่างๆ มักจะเปิดเผยออกมาอย่างไรเมื่อมีคำสั่ง if เข้ามามีบทบาทภายในสคริปต์ Bash สคริปต์ใช้เวลาสักครู่เพื่อประเมินเงื่อนไขที่กล่าวถึงในคำสั่ง if หากเงื่อนไขพิสูจน์ได้ว่าเป็นจริง คำสั่งที่อยู่ในบล็อก "จากนั้น" ก็จะถึงคราวที่จะดำเนินการ
อย่างไรก็ตาม หากเงื่อนไขเกิดขึ้นเป็นเท็จ สคริปต์จะดำเนินการประเมินเงื่อนไข elif เพิ่มเติมใดๆ หากเงื่อนไขใดๆ เหล่านี้ถือเป็นจริง คำสั่งของบล็อก elif ที่เกี่ยวข้องจะเริ่มทำงาน ในกรณีที่ไม่มีเงื่อนไขใดที่ระบุในคำสั่ง if และ elif ปรากฏว่าเป็นจริง สคริปต์รับทราบสิ่งนี้และดำเนินการดำเนินการคำสั่งที่ระบุภายในบล็อก else (หากมีการรวมบล็อกอื่นไว้ด้วย)
โดยพื้นฐานแล้ว คำสั่ง if ทำหน้าที่เป็นเครื่องมือในการอำนวยความสะดวกในการตัดสินใจภายในสคริปต์ ช่วยให้สามารถสำรวจเส้นทางการดำเนินการที่แตกต่างกันขึ้นอยู่กับผลการทดสอบ การทดสอบอาจคำนึงถึงปัจจัยต่างๆ เช่น ผลลัพธ์ของคำสั่งหรือค่าที่กำหนดให้กับตัวแปร
ทุบตีคำสั่ง If เป็นตัวอย่าง
ตอนนี้เราออกจากทฤษฎีพื้นฐานแล้วดูว่าคำสั่ง Bash if สามารถใช้ในการพัฒนาการเขียนโค้ดได้อย่างไร นี่คือตัวอย่างที่สาธิตวิธีการทำงานของคำสั่ง Bash if:
#!/bin/bash # set a variable x=5 # evaluate the variable if [ $x -gt 4 ] then echo "x is greater than 4." else echo "x is less than or equal to 4." fi
ในตัวอย่างนี้ คำสั่ง if จะประเมินค่าของตัวแปร x ถ้า x มากกว่า 4 สคริปต์จะดำเนินการคำสั่งเพื่อพิมพ์ “x มากกว่า 4” ถ้า x น้อยกว่าหรือเท่ากับ 4 สคริปต์จะดำเนินการคำสั่งเพื่อพิมพ์ “x น้อยกว่าหรือเท่ากับ 4”
ทำความรู้จักกับคำสั่ง Bash If ที่แตกต่างกันและไวยากรณ์คำสั่งที่เกี่ยวข้อง
ตอนนี้ คุณมีความเข้าใจอย่างมั่นคงเกี่ยวกับ Bash If Statement และวิธีการทำงานแล้ว มาเจาะลึกรูปแบบต่างๆ และคำสั่งที่เกี่ยวข้องกัน และเรียนรู้เพิ่มเติมเกี่ยวกับ Basic If Statements, Nested If Statements, Bash If Else, If Elif Else และ Case Statements ทีละรายการ
งบพื้นฐานถ้า
เริ่มต้นด้วยคำสั่ง bash if พื้นฐาน คำสั่ง if ใน Bash ตรวจสอบว่าเงื่อนไขเป็นจริงหรือไม่และดำเนินการบล็อกของรหัสที่เกี่ยวข้องตามลำดับ นี่คือไวยากรณ์:
if [ condition ] then commands fi
ในกรณีที่เรามีอยู่ที่นี่ สคริปต์จะประเมินเงื่อนไข และหากเป็นจริง คำสั่งที่ระบุก็จะถูกดำเนินการ หากเงื่อนไขเป็นเท็จ สคริปต์จะย้ายไปยังคำสั่งถัดไปโดยไม่ต้องดำเนินการบล็อกภายในส่วน “จากนั้น”
คำสั่ง If ที่ซ้อนกัน
คำสั่ง if แบบซ้อน ดังที่ชื่อโฆษณาบอกเป็นนัย คือคำสั่ง if ที่ "ซ้อนกัน" อยู่ภายในคำสั่ง if อีกคำสั่งหนึ่ง โครงสร้างแบบซ้อนนี้ช่วยให้สามารถทดสอบและวิเคราะห์ที่ซับซ้อนมากขึ้นภายในสคริปต์ได้ นี่คือตัวอย่างของคำสั่ง if ที่ซ้อนกัน:
if [ condition1 ]
then
if [ condition2 ]
then
commands
fi
fi
คุณสามารถดูได้ในคำสั่งที่สคริปต์ประเมินเงื่อนไข 1 เป็นขั้นตอนแรก หากเงื่อนไข 1 ได้รับการตรวจสอบว่าเป็นจริง ก็จะประเมินเงื่อนไข 2 หากเงื่อนไข 2 เป็นจริงด้วย สคริปต์จะดำเนินการตามคำสั่งที่จำเป็น
ทุบตีคำสั่ง If Else
คำสั่ง Bash if else ช่วยให้คุณสามารถตัดสินใจภายในสคริปต์ของคุณโดยพิจารณาว่าเงื่อนไขเป็นจริงหรือเท็จ ช่วยให้สามารถเรียกใช้โค้ดตามสถานการณ์ขั้นสูงยิ่งขึ้น โครงสร้างมีลักษณะดังนี้:
if [ condition ] then commands1 else commands2 fi
โครงสร้างนี้ช่วยให้แน่ใจว่าหากเงื่อนไขยังคงอยู่ สคริปต์ของคุณจะดำเนินการ “commands1” อย่างรวดเร็ว อย่างไรก็ตาม หากเงื่อนไขเป็นเท็จ ก็จะเปลี่ยนไปดำเนินการ “commands2”
ถ้างบ Elif อื่น
บางครั้ง คุณจำเป็นต้องพิจารณาเงื่อนไขหลายประการและผลลัพธ์ตามลำดับ คำสั่ง if elif else ช่วยให้คุณทำสิ่งนั้นได้สำเร็จ สังเกตไวยากรณ์ต่อไปนี้:
if [ condition1 ] then commands1 elif [ condition2 ] then commands2 else commands3 fi
ที่นี่สคริปต์ของคุณจะประเมินเงื่อนไข 1 ก่อน หากได้รับการยืนยันว่าเป็นความจริง มันจะรันคำสั่งอย่างรวดเร็ว1 อย่างไรก็ตาม หากเงื่อนไข 1 เป็นเท็จ สคริปต์ของคุณก็จะดำเนินต่อไปเพื่อประเมินเงื่อนไข 2 หากเงื่อนไข 2 ถือเป็นจริง จะดำเนินการคำสั่ง 2 ต่อไป และหากทั้งเงื่อนไข 1 และเงื่อนไข 2 กลายเป็นเท็จ สคริปต์ของคุณจะไปเป็นทางเลือกอื่น ซึ่งกำลังดำเนินการคำสั่ง3
คำชี้แจงกรณี
ใน Bash คุณมีคำสั่ง case ซึ่งทำหน้าที่คล้ายกับคำสั่ง switch ที่พบในภาษาการเขียนโปรแกรมอื่น เป็นวิธีดำเนินการชุดคำสั่งต่างๆ ตามค่าของตัวแปร ลองดูที่โครงสร้าง:
case expression in pattern1) commands1;; pattern2) commands2;; pattern3) commands3;; *) default commands;; esac
ที่นี่ สคริปต์จะประเมินตัวแปรนิพจน์และจับคู่กับรูปแบบต่างๆ เมื่อพบรายการที่ตรงกัน ชุดคำสั่งที่เกี่ยวข้องจะถูกดำเนินการ อย่างไรก็ตาม หากไม่พบรายการที่ตรงกัน คำสั่งเริ่มต้นจะถูกดำเนินการอย่างงดงาม รูปแบบเครื่องหมายดอกจัน (*) ทำหน้าที่เป็นไวด์การ์ด ซึ่งตรงกับสิ่งที่ยังไม่ครอบคลุม
ทุบตีตัวดำเนินการเชิงตรรกะ
อีกส่วนที่สำคัญของ Bash ถ้าการประมวลผลคำสั่งคือตัวดำเนินการเชิงตรรกะ โอเปอเรเตอร์เหล่านี้ช่วยให้คุณสามารถรวมเงื่อนไขต่างๆ เข้าด้วยกัน ทำให้คุณสามารถตัดสินใจบนพื้นฐานของความจริงหรือความเท็จของเงื่อนไขที่รวมกันเหล่านี้ Bash รวมเอาตัวดำเนินการเชิงตรรกะหลักสามตัวเพื่อนำไปใช้ในคำสั่ง if ต่อไปนี้เป็นตัวอย่างของคำสั่งตัวดำเนินการเชิงตรรกะหลักสามประเภท
- ทุบตีและ (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then echo "You meet the criteria for voting." fi
- ตรรกะหรือ (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then echo "Access granted." fi
- ไม่เท่ากับ:
if(( ! $a == "true" )) then echo "a" was initially false. else echo "a" was initially true. fi
บทสรุป
ในบล็อกโพสต์นี้ เราได้จัดเตรียมคำแนะนำเบื้องต้นเกี่ยวกับคำสั่ง Bash if และวิธีการใช้งาน นอกจากนี้เรายังพูดคุยถึงวิธีที่พวกเขาจะทำให้โค้ดของคุณเรียบร้อยและใช้งานได้มากขึ้น ด้วยการใช้คำสั่งแบบมีเงื่อนไขเหล่านี้อย่างมีประสิทธิภาพ คุณสามารถสร้างสคริปต์ที่มีประสิทธิภาพที่สามารถจัดการงานที่ซับซ้อนและการตัดสินใจได้
คุณยังใหม่กับโลกของ Linux หรือไม่? ให้เราเป็นแสงสว่างนำทางคุณในการเดินทางที่น่าตื่นเต้นนี้! ของเรา ลินุกซ์ วีพีเอส เป็นจุดเริ่มต้นที่สมบูรณ์แบบสำหรับผู้เริ่มต้น นำเสนอความเรียบง่ายโดยไม่ต้องเสียสละพลัง ด้วยอินเทอร์เฟซที่ใช้งานง่ายและการสนับสนุนจากผู้เชี่ยวชาญ คุณจะพบว่าการควบคุมความสามารถของเซิร์ฟเวอร์ Linux ง่ายกว่าที่เคย ไม่ว่าคุณจะตั้งค่าเว็บไซต์ ทดสอบแอปพลิเคชัน หรือสำรวจโลกอันกว้างใหญ่ของ Linux Linux VPS ของเรามอบสภาพแวดล้อมที่ปลอดภัยและไม่ยุ่งยาก ก้าวแรกสู่จักรวาล Linux ด้วยความมั่นใจ ลองดูตัวเลือก Linux VPS ของเราวันนี้ และเริ่มต้นการผจญภัยบน Linux ของคุณ!
รับ Linux VPS แบบประหยัดหรือพรีเมียมสำหรับการโฮสต์เว็บไซต์หรือเดสก์ท็อประยะไกลของคุณ ในราคาที่ถูกที่สุด VPS ทำงานบน Linux KVM เพื่อประสิทธิภาพที่เพิ่มขึ้น และทำงานบนฮาร์ดแวร์อันทรงพลังพร้อมที่เก็บข้อมูล NVMe SSD เพื่อเพิ่มความเร็ว
อ่านเพิ่มเติมคำถามที่พบบ่อย
ฉันสามารถใช้ตัวดำเนินการเชิงตรรกะใน Bash if งบได้หรือไม่
ได้ คุณสามารถใช้ตัวดำเนินการเชิงตรรกะ เช่น '&' และ '||' ใน Bash if งบ ตัวอย่างเช่น, ถ้า [ $var -gt 0 ] && [ $var -lt 10 ]; แล้ว … จะดำเนินการบล็อกของรหัสถ้า $var มากกว่า 0 และน้อยกว่า 10
ฉันสามารถใช้เงื่อนไขหลายเงื่อนไขในคำสั่ง if เดียวได้หรือไม่
ได้ คุณสามารถใช้ Bash if หลายเงื่อนไขในคำสั่ง if เดียวได้โดยใช้ตัวดำเนินการเชิงตรรกะ เช่น -a (และ) หรือ -o (OR) เพื่อรวมเข้าด้วยกัน ตัวอย่างเช่น, ถ้า [ $var -gt 0 -a $var -lt 10 ]; แล้ว … จะดำเนินการบล็อกของรหัสถ้า $var มากกว่า 0 และน้อยกว่า 10
ฉันสามารถใช้การทดแทนคำสั่งใน Bash if งบได้หรือไม่
ใช่ คุณสามารถใช้การทดแทนคำสั่งในคำสั่ง Bash if ได้โดยการใส่คำสั่งเข้าไป $() หรือ backticks (”). ตัวอย่างเช่น, ถ้า [ $(whoami) == “root” ]; แล้ว … จะดำเนินการบล็อคโค้ดหากผู้ใช้ปัจจุบันเป็นรูท
[[ vs [ vs ( vs ((:: อะไรคือความแตกต่างระหว่างตัวดำเนินการ Bash เหล่านี้?
กล่าวโดยสรุป [[ ใช้สำหรับการทดสอบตามเงื่อนไขขั้นสูง [ ใช้สำหรับการทดสอบตามเงื่อนไขขั้นพื้นฐาน ( ใช้สำหรับการจัดกลุ่มย่อยและการดำเนินการคำสั่ง (( ใช้สำหรับการดำเนินการทางคณิตศาสตร์