Bird
Raised Fist0
Bash Scriptingscripting~15 mins

if-elif-else in Bash Scripting - Mini Project: Build & Apply

Choose your learning style10 modes available
Basic Decision Making with if-elif-else in Bash
📖 Scenario: You are writing a simple script to check the temperature and give advice on what to wear.
🎯 Goal: Create a bash script that uses if-elif-else statements to print clothing advice based on the temperature.
📋 What You'll Learn
Create a variable temperature with a specific value
Create a variable cold_threshold to set the cold temperature limit
Use if-elif-else to check if temperature is below cold_threshold, between cold_threshold and 25, or above 25
Print the correct advice message for each temperature range
💡 Why This Matters
🌍 Real World
Scripts like this help automate decisions based on changing data, such as weather or system status.
💼 Career
Understanding if-elif-else is essential for writing scripts that respond to different conditions in IT, DevOps, and automation roles.
Progress0 / 4 steps
1
Set the temperature variable
Create a variable called temperature and set it to 18.
Bash Scripting
Hint

Use variable=value syntax without spaces for bash variables.

2
Set the cold temperature threshold
Create a variable called cold_threshold and set it to 15.
Bash Scripting
Hint

Remember to use the same syntax as before for variables.

3
Write the if-elif-else decision structure
Write an if-elif-else statement that checks the value of temperature against cold_threshold and 25. Use -lt for less than and -le for less or equal in numeric comparisons. The conditions are:
1. If temperature is less than cold_threshold, print "Wear a jacket".
2. Else if temperature is less or equal to 25, print "Wear a sweater".
3. Else, print "Wear a t-shirt".
Bash Scripting
Hint

Use square brackets with spaces and double quotes around variables for safety.

4
Run the script and display the output
Print the output of the script by running it or echoing the result. The expected output is exactly Wear a sweater.
Bash Scripting
Hint

Just run the script or save and execute it to see the output.

Practice

(1/5)
1. What does the if-elif-else structure do in a Bash script?
easy
A. It repeats a set of commands multiple times.
B. It comments out lines of code.
C. It defines a function to reuse code.
D. It lets the script choose between multiple actions based on conditions.

Solution

  1. Step 1: Understand the purpose of if-elif-else

    The if-elif-else structure checks conditions one by one and runs the matching block.
  2. Step 2: Compare with other options

    Loops repeat commands, functions reuse code, comments disable code lines. Only if-elif-else chooses actions.
  3. Final Answer:

    It lets the script choose between multiple actions based on conditions. -> Option D
  4. Quick Check:

    if-elif-else = choose actions [OK]
Hint: If you want choices, use if-elif-else [OK]
Common Mistakes:
  • Confusing if-elif-else with loops
  • Thinking it defines functions
  • Mixing it up with comments
2. Which of the following is the correct syntax to start an if-elif-else block in Bash?
easy
A. if [ condition ]; then
B. if (condition) {
C. if condition then
D. if condition:

Solution

  1. Step 1: Recall Bash if syntax

    Bash requires square brackets around conditions and 'then' after the condition, with semicolons or newlines.
  2. Step 2: Check each option

    if [ condition ]; then uses correct syntax: if [ condition ]; then. Others use wrong brackets or missing keywords.
  3. Final Answer:

    if [ condition ]; then -> Option A
  4. Quick Check:

    Correct if syntax = if [ condition ]; then [OK]
Hint: Use brackets and 'then' with semicolon or newline [OK]
Common Mistakes:
  • Omitting brackets around condition
  • Using parentheses instead of brackets
  • Missing 'then' keyword
3. What will be the output of this script?
#!/bin/bash
num=7
if [ $num -lt 5 ]; then
  echo "Less than 5"
elif [ $num -eq 7 ]; then
  echo "Equal to 7"
else
  echo "Other"
fi
medium
A. Less than 5
B. Equal to 7
C. Other
D. Syntax Error

Solution

  1. Step 1: Check the value of num and conditions

    num=7. First condition checks if num < 5 (false). Second checks if num == 7 (true).
  2. Step 2: Determine which block runs

    Since second condition is true, it prints "Equal to 7" and skips else.
  3. Final Answer:

    Equal to 7 -> Option B
  4. Quick Check:

    num=7 matches elif condition [OK]
Hint: Check conditions top to bottom, first true runs [OK]
Common Mistakes:
  • Assuming first condition runs
  • Confusing -lt and -eq operators
  • Missing fi causes syntax error
4. Identify the error in this Bash script snippet:
if [ $value -gt 10 ]
  echo "Greater than 10"
elif [ $value -eq 10 ]; then
  echo "Equal to 10"
else
  echo "Less than 10"
fi
medium
A. Missing fi at the end
B. Incorrect use of elif keyword
C. Missing 'then' after first if condition
D. Wrong comparison operator

Solution

  1. Step 1: Check syntax after if condition

    In Bash, 'then' must follow the if condition, either on same line after semicolon or next line.
  2. Step 2: Verify other parts

    elif has 'then', fi is present, operators are correct. Only missing 'then' after if.
  3. Final Answer:

    Missing 'then' after first if condition -> Option C
  4. Quick Check:

    if needs 'then' keyword [OK]
Hint: Always put 'then' after if condition [OK]
Common Mistakes:
  • Forgetting 'then' after if
  • Misplacing semicolons
  • Confusing elif syntax
5. You want a script to print "Positive", "Zero", or "Negative" based on a variable num. Which script correctly uses if-elif-else to do this?
hard
A. #!/bin/bash if [ $num -gt 0 ]; then echo "Positive" elif [ $num -eq 0 ]; then echo "Zero" else echo "Negative" fi
B. #!/bin/bash if [ $num > 0 ]; then echo "Positive" elif [ $num == 0 ]; then echo "Zero" else echo "Negative" fi
C. #!/bin/bash if $num > 0 then echo "Positive" elif $num == 0 then echo "Zero" else echo "Negative" fi
D. #!/bin/bash if [ $num -ge 0 ]; then echo "Positive" elif [ $num -eq 0 ]; then echo "Zero" else echo "Negative" fi

Solution

  1. Step 1: Check comparison operators

    Bash uses -gt, -eq, -lt for numeric comparisons. #!/bin/bash if [ $num -gt 0 ]; then echo "Positive" elif [ $num -eq 0 ]; then echo "Zero" else echo "Negative" fi uses correct operators.
  2. Step 2: Verify logic and syntax

    #!/bin/bash if [ $num -gt 0 ]; then echo "Positive" elif [ $num -eq 0 ]; then echo "Zero" else echo "Negative" fi correctly checks >0, ==0, else negative. Others use wrong operators or syntax.
  3. Final Answer:

    A -> Option A
  4. Quick Check:

    Use -gt, -eq for numbers in if-elif-else [OK]
Hint: Use -gt, -eq for numbers; avoid > or == in [ ] [OK]
Common Mistakes:
  • Using > or == inside [ ]
  • Missing then keyword
  • Wrong operator for numeric comparison
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard