Bird
Raised Fist0
Bash Scriptingscripting~15 mins

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

Choose your learning style10 modes available
Basic Decision Making with if-then-else in Bash
📖 Scenario: You are writing a simple script to check if a number is positive, negative, or zero. This is like checking the weather and deciding what to wear: if it's hot, wear shorts; if cold, wear a jacket; else wear something in between.
🎯 Goal: Build a bash script that uses if-then-else statements to print whether a number is positive, negative, or zero.
📋 What You'll Learn
Create a variable number with the value 5
Create a variable zero with the value 0
Use if, elif, and else to check if number is greater than, less than, or equal to zero
Print exactly Positive, Negative, or Zero based on the check
💡 Why This Matters
🌍 Real World
Scripts often need to make decisions based on input values, like checking if a file exists or if a user is logged in.
💼 Career
Understanding if-then-else logic is essential for automating tasks, writing installation scripts, and managing system operations.
Progress0 / 4 steps
1
Set the number variable
Create a variable called number and set it to 5.
Bash Scripting
Hint

Use variable=value syntax without spaces in bash.

2
Set the zero variable
Create a variable called zero and set it to 0.
Bash Scripting
Hint

Remember no spaces around the equals sign.

3
Write the if-then-else logic
Write an if statement to check if number is greater than zero using [ $number -gt $zero ]. Then use elif to check if number is less than zero using [ $number -lt $zero ]. Use else for the case when number equals zero. Inside each block, use echo to print Positive, Negative, or Zero respectively.
Bash Scripting
Hint

Use if [ condition ]; then ... elif [ condition ]; then ... else ... fi structure.

4
Run the script to see the output
Run the script and print the output. The output should be exactly Positive.
Bash Scripting
Hint

Run the script in a terminal or use bash script.sh if saved in a file.

Practice

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

Solution

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

    The if-then-else structure checks a condition and runs code based on whether the condition is true or false.
  2. Step 2: Compare with other options

    Repeating commands is done with loops, functions reuse code, and comments do not execute code.
  3. Final Answer:

    It lets the script choose between two paths based on a condition. -> Option D
  4. Quick Check:

    if-then-else = choose path [OK]
Hint: If you see a condition, it's likely if-then-else [OK]
Common Mistakes:
  • Confusing if-then-else with loops
  • Thinking if-then-else defines functions
  • Mixing comments with control flow
2. Which of the following is the correct syntax to start an if statement in bash?
easy
A. if [ condition ]; then
B. if { condition } then
C. if(condition) then
D. if condition then

Solution

  1. Step 1: Recall bash if syntax

    Bash requires spaces around brackets and a semicolon before then: if [ condition ]; then.
  2. Step 2: Check other options

    if(condition) then misses spaces and semicolon, B uses braces incorrectly, D misses brackets and semicolon.
  3. Final Answer:

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

    Spaces and semicolon needed [OK]
Hint: Remember spaces around [ ] and semicolon before then [OK]
Common Mistakes:
  • No spaces around brackets
  • Missing semicolon before then
  • Using parentheses or braces incorrectly
3. What will be the output of this script?
#!/bin/bash
x=5
if [ $x -gt 3 ]; then
  echo "Greater"
else
  echo "Smaller"
fi
medium
A. No output
B. Smaller
C. Greater
D. Syntax Error

Solution

  1. Step 1: Evaluate the condition

    The condition checks if x (5) is greater than 3, which is true.
  2. Step 2: Determine which branch runs

    Since condition is true, the script prints "Greater".
  3. Final Answer:

    Greater -> Option C
  4. Quick Check:

    5 > 3 = Greater [OK]
Hint: Check numeric comparison carefully [OK]
Common Mistakes:
  • Confusing -gt with -lt
  • Missing spaces causing syntax errors
  • Assuming else runs when condition is true
4. Find the error in this script:
#!/bin/bash
if [ $num -eq 10 ]
  echo "Ten"
else
  echo "Not Ten"
fi
medium
A. Missing then after condition
B. Wrong comparison operator
C. Missing fi at the end
D. No error

Solution

  1. Step 1: Check if statement syntax

    The if condition must be followed by then keyword to start the true block.
  2. Step 2: Identify missing part

    The script misses then after the condition line.
  3. Final Answer:

    Missing then after condition -> Option A
  4. Quick Check:

    if needs then [OK]
Hint: Always put then after condition in if [ ] [OK]
Common Mistakes:
  • Forgetting then keyword
  • Using wrong comparison operators
  • Missing fi to close if
5. You want a script that prints "Even" if a number is even, and "Odd" if it is odd. Which script correctly uses if-then-else to do this?
num=4
# Choose correct script
hard
A. if [ $num % 2 -eq 0 ]; then echo "Even" else echo "Odd" fi
B. if (( num % 2 == 0 )); then echo "Even" else echo "Odd" fi
C. if [ $num % 2 == 0 ]; then echo "Even" else echo "Odd" fi
D. if [ $num / 2 -eq 0 ]; then echo "Even" else echo "Odd" fi

Solution

  1. Step 1: Understand arithmetic evaluation in bash

    Using double parentheses (( )) allows arithmetic expressions and comparisons directly.
  2. Step 2: Check each option

    if [ $num % 2 -eq 0 ]; then echo "Even" else echo "Odd" fi uses % inside [ ] without arithmetic evaluation. if [ $num % 2 == 0 ]; then echo "Even" else echo "Odd" fi uses % inside [ ] without arithmetic evaluation. if [ $num / 2 -eq 0 ]; then echo "Even" else echo "Odd" fi uses / instead of % for modulus. if (( num % 2 == 0 )); then echo "Even" else echo "Odd" fi correctly uses (( )) with modulus and comparison.
  3. Final Answer:

    if (( num % 2 == 0 )); then echo "Even" else echo "Odd" fi -> Option B
  4. Quick Check:

    Use (( )) for arithmetic if [OK]
Hint: Use (( )) for math conditions in bash [OK]
Common Mistakes:
  • Using [ ] with arithmetic operators incorrectly
  • Confusing / with % for modulus
  • Missing then keyword
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