คำสั่งแบบมีเงื่อนไข (if, else, elif)
นำตรรกะการตัดสินใจมาใช้ในสคริปต์ด้วยคำสั่ง 'if', 'else' และ 'elif' เพื่อให้การทำงานปรับเปลี่ยนได้
คำสั่งแบบมีเงื่อนไข (if, else, elif) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดเงื่อนไขจึงสำคัญ
ในการเขียนสคริปต์ Bash บางครั้งคุณต้องการให้สคริปต์ตัดสินใจ ลองนึกภาพสคริปต์ที่ทำงานต่างกันตามข้อมูลป้อนเข้าจากผู้ใช้หรือการมีอยู่ของไฟล์
นี่คือจุดที่ คำสั่งเงื่อนไขเข้ามามีบทบาท คำสั่งเหล่านี้ช่วยให้สคริปต์เรียกใช้ชุดรหัสเฉพาะได้ก็ต่อเมื่อเป็นไปตามเงื่อนไขที่กำหนด
คำสั่ง 'if' พื้นฐาน
เงื่อนไขที่ง่ายที่สุดคือคำสั่ง if ซึ่งใช้ตรวจสอบเงื่อนไข และหากเงื่อนไขนั้นเป็นจริง ระบบจะเรียกใช้ชุดคำสั่งที่อยู่ภายใน
รูปแบบไวยากรณ์คือ:
if [ condition ]then# commands if condition is truefi(ระบุจุดสิ้นสุดของชุดคำสั่งif)
สคริปต์ 'if' แรกของคุณ
มาดูการทำงานของคำสั่ง if พื้นฐานกัน สคริปต์นี้ตรวจสอบว่าตัวเลขมากกว่า 5 หรือไม่
ลองเปลี่ยนค่า NUMBER แล้วเรียกใช้ดู
#!/bin/bash
NUMBER=10
if [ $NUMBER -gt 5 ]
then
echo "The number $NUMBER is greater than 5."
fi
echo "Script finished."สร้างเงื่อนไขการตรวจสอบ
ส่วน [ condition ] มีความสำคัญมาก จริง ๆ แล้วส่วนนี้คือคำสั่งที่เรียกว่า test หรือชื่อแทนคือ [
คุณยังสามารถใช้ [[ condition ]] ซึ่งเป็นรูปแบบที่ก้าวหน้ากว่า มีไวยากรณ์ที่ดีกว่า และช่วยป้องกันปัญหาการแยกคำ สำหรับผู้เริ่มต้น มักใช้ [ ]
- ต้องเว้นวรรคระหว่างวงเล็บและตัวดำเนินการเสมอ
- โดยทั่วไปควรใส่เครื่องหมายคำพูดให้ตัวแปรภายใน
[ ](เช่น"$VARIABLE") เพื่อป้องกันข้อผิดพลาดเมื่อค่าเป็นค่าว่างหรือมีหลายคำ
การเปรียบเทียบตัวเลข
เมื่อเปรียบเทียบตัวเลขใน Bash ให้ใช้ตัวดำเนินการเฉพาะดังนี้:
-eq: เท่ากับ-ne: ไม่เท่ากับ-gt: มากกว่า-ge: มากกว่าหรือเท่ากับ-lt: น้อยกว่า-le: น้อยกว่าหรือเท่ากับ
ตัวดำเนินการเหล่านี้ใช้ภายใน [ ] หรือ [[ ]]
การเปรียบเทียบสตริง
สำหรับการเปรียบเทียบข้อความ (สตริง) จะใช้ตัวดำเนินการที่แตกต่างกัน:
==หรือ=: เท่ากับ (==เป็นตัวเลือกที่แนะนำเมื่อใช้กับ[[ ]])!=: ไม่เท่ากับ-z "$STRING": เป็นจริงหากสตริงว่าง (มีความยาวเป็นศูนย์)-n "$STRING": เป็นจริงหากสตริงไม่ว่าง (มีความยาวไม่เป็นศูนย์)
อย่าลืมใส่เครื่องหมายคำพูดให้ตัวแปรสตริง
คำสั่ง 'if-else'
ถ้าคุณต้องการให้เรียกใช้ชุดรหัสหนึ่งเมื่อเงื่อนไขเป็นจริง และเรียกใช้ชุดรหัสอีกชุดเมื่อเงื่อนไขเป็นเท็จล่ะ
นั่นคือหน้าที่ของ if-else ซึ่งจะจัดเตรียมเส้นทางทางเลือกให้สคริปต์
รูปแบบไวยากรณ์คือ:
if [ condition ]then# commands if trueelse# commands if falsefi
'if-else' ในการทำงาน
สคริปต์นี้ขอให้คุณป้อนตัวเลข แล้วบอกว่าตัวเลขนั้นเป็นจำนวนบวกหรือไม่ โดยใช้โครงสร้าง if-else
ลองเรียกใช้หลายครั้งด้วยข้อมูลป้อนเข้าที่แตกต่างกัน (เช่น 5, -3, 0)
#!/bin/bash
read -p "Enter a number: " NUM
if [ "$NUM" -gt 0 ]
then
echo "$NUM is a positive number."
else
echo "$NUM is not a positive number (it's zero or negative)."
fiหลายทางเลือกด้วย 'elif'
เมื่อมีผลลัพธ์ที่เป็นไปได้มากกว่าสองแบบ คุณสามารถใช้ elif (ย่อมาจาก “else if”) ได้ วิธีนี้ช่วยให้ตรวจสอบหลายเงื่อนไขตามลำดับ
รูปแบบไวยากรณ์คือ:
if [ condition1 ]then# commands if condition1 is trueelif [ condition2 ]then# commands if condition1 is false AND condition2 is trueelse# commands if all conditions are falsefi
ตรรกะการตัดสินใจขั้นสูง
มาสร้างสคริปต์ที่จัดกลุ่มอายุของผู้ใช้โดยใช้ if, elif และ else กัน สคริปต์นี้รองรับหลายกรณี
สังเกตการใช้ && เพื่อรวมเงื่อนไขใน [[ ]] (AND เชิงตรรกะ)
#!/bin/bash
read -p "Enter your age: " AGE
if [[ $AGE -lt 13 ]]
then
echo "You are a child."
elif [[ $AGE -ge 13 && $AGE -lt 18 ]]
then
echo "You are a teenager."
elif [[ $AGE -ge 18 && $AGE -lt 65 ]]
then
echo "You are an adult."
else
echo "You are a senior citizen."
fiตรวจสอบเงื่อนไข
พิจารณาสคริปต์ Bash ต่อไปนี้:
#!/bin/bash
SCORE=85
if [ $SCORE -lt 60 ]
then
echo "Fail"
elif [ $SCORE -lt 80 ]
then
echo "Pass"
else
echo "Distinction"
fiสรุปเรื่องเงื่อนไข
ทำได้ดีมาก! คุณได้เรียนรู้วิธีทำให้สคริปต์ Bash ฉลาดขึ้นด้วยคำสั่งเงื่อนไขแล้ว
- คำสั่ง
ifจะเรียกใช้รหัสเมื่อเงื่อนไขเป็นจริง elseจะจัดเตรียมเส้นทางทางเลือกเมื่อเงื่อนไขของifเป็นเท็จelifช่วยให้ตรวจสอบหลายเงื่อนไขตามลำดับ- อย่าลืมใช้ตัวดำเนินการให้เหมาะสม (
-eqสำหรับตัวเลข และ==สำหรับสตริง) และปิดชุดคำสั่งifด้วยfiเสมอ
เครื่องมือเหล่านี้เป็นพื้นฐานสำคัญในการสร้างสคริปต์ที่ทำงานแบบไดนามิกและโต้ตอบกับผู้ใช้
คำถามที่พบบ่อย
บทเรียน “คำสั่งแบบมีเงื่อนไข (if, else, elif)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คำสั่งแบบมีเงื่อนไข (if, else, elif)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คำสั่งแบบมีเงื่อนไข (if, else, elif)”
นำตรรกะการตัดสินใจมาใช้ในสคริปต์ด้วยคำสั่ง 'if', 'else' และ 'elif' เพื่อให้การทำงานปรับเปลี่ยนได้ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “คำสั่งแบบมีเงื่อนไข (if, else, elif)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สคริปต์ Bash แรกและ Shebang
- ตัวแปรและอินพุตจากผู้ใช้
- คำสั่งแบบมีเงื่อนไข (if, else, elif)
- การทำงานกับอาร์เรย์ใน Bash