📖 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
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.
Step 2: Compare with other options
Repeating commands is done with loops, functions reuse code, and comments do not execute code.
Final Answer:
It lets the script choose between two paths based on a condition. -> Option D
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
Step 1: Recall bash if syntax
Bash requires spaces around brackets and a semicolon before then: if [ condition ]; then.
Step 2: Check other options
if(condition) then misses spaces and semicolon, B uses braces incorrectly, D misses brackets and semicolon.
Final Answer:
if [ condition ]; then -> Option A
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
Step 1: Evaluate the condition
The condition checks if x (5) is greater than 3, which is true.
Step 2: Determine which branch runs
Since condition is true, the script prints "Greater".
Final Answer:
Greater -> Option C
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
Step 1: Check if statement syntax
The if condition must be followed by then keyword to start the true block.
Step 2: Identify missing part
The script misses then after the condition line.
Final Answer:
Missing then after condition -> Option A
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
Step 1: Understand arithmetic evaluation in bash
Using double parentheses (( )) allows arithmetic expressions and comparisons directly.
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.
Final Answer:
if (( num % 2 == 0 )); then
echo "Even"
else
echo "Odd"
fi -> Option B
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 unknownstrongwhile earning +1 Grip toward your certificate.