Bird
Raised Fist0
Bash Scriptingscripting~10 mins

if-then-else in Bash Scripting - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if the variable num is equal to 10.

Bash Scripting
if [ "$num" [1] 10 ]; then
  echo "Number is ten"
fi
Drag options to blanks, or click blank then click option'
A==
B=
C!=
D-eq
Attempts:
3 left
💡 Hint
Common Mistakes
Using '=' or '==' which are for strings, not integers.
Forgetting spaces around brackets.
2fill in blank
medium

Complete the code to print "Positive" if the variable num is greater than zero.

Bash Scripting
if [ "$num" [1] 0 ]; then
  echo "Positive"
fi
Drag options to blanks, or click blank then click option'
A-gt
B-lt
C-eq
D-ne
Attempts:
3 left
💡 Hint
Common Mistakes
Using string comparison operators instead of numeric ones.
Using -lt which means less than.
3fill in blank
hard

Fix the error in the if statement to correctly check if word equals "hello".

Bash Scripting
if [[ $word [1] "hello" ]]; then
  echo "Greeting detected"
fi
Drag options to blanks, or click blank then click option'
A-eq
B=
C==
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using single equals = inside [[ ]] which is less common and can cause issues.
Using numeric operators like -eq for strings.
4fill in blank
hard

Fill both blanks to complete the if-else statement that prints "Even" if num is divisible by 2, else prints "Odd".

Bash Scripting
if [ $((num [1] 2)) [2] 0 ]; then
  echo "Even"
else
  echo "Odd"
fi
Drag options to blanks, or click blank then click option'
A%
B-eq
C-ne
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using division / instead of modulus %.
Using -ne instead of -eq.
5fill in blank
hard

Fill all three blanks to create a nested if-else that prints "Positive", "Zero", or "Negative" based on num.

Bash Scripting
if [ $num [1] 0 ]; then
  echo "Positive"
elif [ $num [2] 0 ]; then
  echo "Zero"
else
  echo "Negative"
fi
Drag options to blanks, or click blank then click option'
A-gt
B-eq
C-lt
D-ne
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up the order of conditions.
Using string comparison operators instead of numeric ones.

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