คำสั่งเงื่อนไข: `if`, `else`, `case`
นำตรรกะการตัดสินใจไปใช้ในสคริปต์ด้วยโครงสร้างเงื่อนไขรูปแบบต่าง ๆ
คำสั่งเงื่อนไข: `if`, `else`, `case` เป็นบทเรียน Linux Command Line Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line Mastery มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
Making Decisions in Scripts
In shell scripting, just like in life, you often need to make decisions. Conditional statements allow your scripts to execute different commands based on whether a certain condition is true or false.
This is crucial for creating flexible and powerful scripts that can adapt to different situations or user inputs.
The Basic `if` Statement
The simplest conditional is the if statement. It checks a condition, and if that condition is true, it executes a block of commands. If false, it skips them.
The basic syntax looks like this:
if [ condition ]; then# commands to run if truefi
Remember fi to close the if block!
Simple `if` Example
Let's see a simple if statement in action. This script checks if a variable num is greater than 5.
Try changing the value of num to see how the output changes!
#!/bin/bash
num=7
if [ "$num" -gt 5 ]; then
echo "Number is greater than 5."
fi
num=3
if [ "$num" -gt 5 ]; then
echo "Number is greater than 5. (This won't print)"
fi`if-else`: Two Paths
What if you want to execute one set of commands if a condition is true, and a different set if it's false? That's where else comes in.
The if-else statement provides two distinct paths for your script:
if [ condition ]; then# commands if condition is trueelse# commands if condition is falsefi
Using `if-else`
This script uses if-else to determine if a number is even or odd. We use the arithmetic evaluation (( )) for clearer number comparisons and calculations.
The % operator gives the remainder of a division. If num % 2 is 0, it's even!
#!/bin/bash
num=4
if (( num % 2 == 0 )); then
echo "$num is an even number."
else
echo "$num is an odd number."
fi
num=9
if (( num % 2 == 0 )); then
echo "$num is an even number. (This won't print)"
else
echo "$num is an odd number."
fi`elif`: Multiple Conditions
Sometimes you have more than two possible outcomes. For these situations, you can use elif (short for "else if") to check multiple conditions sequentially.
The script checks conditions one by one. The first one that's true gets its commands executed, and the rest are skipped.
if [ cond1 ]; then ...elif [ cond2 ]; then ...else ...fi
Chain of `elif`
Here's an example using if-elif-else to assign a letter grade based on a score. Notice how the conditions are checked from highest to lowest score.
If a score is 95, the first if condition (>= 90) is met, and it prints "A". The other elif and else blocks are then ignored.
#!/bin/bash
score=85
if [ "$score" -ge 90 ]; then
echo "Grade: A"
elif [ "$score" -ge 80 ]; then
echo "Grade: B"
elif [ "$score" -ge 70 ]; then
echo "Grade: C"
else
echo "Grade: F"
fi`case`: Simple Selection
When you have a single variable or expression that can have many possible values, and you want to perform different actions for each value, the case statement is often cleaner than a long if-elif-else chain.
It's great for menu-driven scripts or handling specific input options.
case $variable inpattern1) commands ;;pattern2) commands ;;*) default commands ;;esac
Using `case` Statements
This script demonstrates how to use case to respond to different user actions (start, stop, restart). The *) pattern acts as a default, catching any unmatched values.
Each block of commands ends with ;;, which is crucial for the case statement to work correctly.
#!/bin/bash
action="start"
case "$action" in
"start")
echo "Starting service..."
;;
"stop")
echo "Stopping service..."
;;
"restart")
echo "Restarting service..."
;;
*) # Default case for anything else
echo "Invalid action: $action"
;;
esac
action="status"
case "$action" in
"start") echo "Starting service..." ;;
"stop") echo "Stopping service..." ;;
"restart") echo "Restarting service..." ;;
*) echo "Invalid action: $action" ;;
esacConditional Challenge
Read the script below carefully. What will be the output when this script is run?
#!/bin/bash
color="blue"
if [ "$color" == "red" ]; then
echo "It's a primary color."
elif [ "$color" == "yellow" ]; then
echo "It's another primary color."
elif [ "$color" == "blue" ]; then
echo "Yes, blue is primary!"
else
echo "Unknown color."
fiDecisions Made Easy
Great job! You've learned the fundamental ways to add decision-making logic to your shell scripts.
if: Executes commands if a condition is true.if-else: Provides two paths, one for true and one for false.elif: Allows chaining multiple conditions for more complex logic.case: A clean way to handle multiple choices based on a single value.
These constructs are essential for writing scripts that can respond dynamically to different inputs and situations.
คำถามที่พบบ่อย
บทเรียน “คำสั่งเงื่อนไข: `if`, `else`, `case`” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คำสั่งเงื่อนไข: `if`, `else`, `case`” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line Mastery มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คำสั่งเงื่อนไข: `if`, `else`, `case`”
นำตรรกะการตัดสินใจไปใช้ในสคริปต์ด้วยโครงสร้างเงื่อนไขรูปแบบต่าง ๆ คุณปฏิบัติ Linux Command Line Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line Mastery หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “คำสั่งเงื่อนไข: `if`, `else`, `case`” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line Mastery นี้ได้ไหม
ได้ บทเรียน Linux Command Line Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวแปร อินพุต และเอาต์พุต
- คำสั่งเงื่อนไข: `if`, `else`, `case`
- ลูป: `for`, `while`, `until`
- ฟังก์ชันและอาร์กิวเมนต์ในสคริปต์เชลล์