Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Integer comparisons (-eq, -ne, -gt, -lt, -ge, -le) 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 variable x equals 10.

Bash Scripting
if [ "$x" [1] 10 ]; then echo "Equal"; fi
Drag options to blanks, or click blank then click option'
A-eq
B-ne
C-gt
D-lt
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-ne' which means 'not equal'.
Using '-gt' or '-lt' which check greater or less than.
2fill in blank
medium

Complete the code to check if variable y is greater than 5.

Bash Scripting
if [ "$y" [1] 5 ]; then echo "Greater"; fi
Drag options to blanks, or click blank then click option'
A-ne
B-gt
C-eq
D-le
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-le' which means 'less than or equal'.
Using '-eq' which means 'equal'.
3fill in blank
hard

Fix the error in the code to check if z is less than or equal to 20.

Bash Scripting
if [ "$z" [1] 20 ]; then echo "Less or equal"; fi
Drag options to blanks, or click blank then click option'
A-lt
B-ge
C-ne
D-le
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-lt' which means strictly less than.
Using '-ge' which means greater than or equal.
4fill in blank
hard

Fill both blanks to check if variable a is not equal to 0 and greater than 10.

Bash Scripting
if [ "$a" [1] 0 ] && [ "$a" [2] 10 ]; then echo "Valid"; fi
Drag options to blanks, or click blank then click option'
A-ne
B-eq
C-gt
D-lt
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-eq' instead of '-ne' for not equal.
Using '-lt' instead of '-gt' for greater than.
5fill in blank
hard

Fill all three blanks to create a condition that checks if b is greater or equal to 5, less than 15, and not equal to 10.

Bash Scripting
if [ "$b" [1] 5 ] && [ "$b" [2] 15 ] && [ "$b" [3] 10 ]; then echo "In range and valid"; fi
Drag options to blanks, or click blank then click option'
A-ge
B-lt
C-ne
D-eq
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-gt' instead of '-ge' for greater or equal.
Using '-le' instead of '-lt' for less than.
Using '-eq' instead of '-ne' for not equal.

Practice

(1/5)
1. Which operator checks if two integers are equal in a bash script?
easy
A. -gt
B. -ne
C. -lt
D. -eq

Solution

  1. Step 1: Understand the meaning of each operator

    -eq means equal, -ne means not equal, -gt means greater than, -lt means less than.
  2. Step 2: Identify the operator for equality

    The operator that checks if two integers are equal is -eq.
  3. Final Answer:

    -eq -> Option D
  4. Quick Check:

    Equality check = -eq [OK]
Hint: Remember: eq means equal, ne means not equal [OK]
Common Mistakes:
  • Confusing -eq with -ne
  • Using == instead of -eq in [ ]
  • Forgetting spaces around operators
2. Which of the following is the correct syntax to check if variable x is greater than 10 in bash?
easy
A. [ $x > 10 ]
B. [ $x -gt 10 ]
C. [ $x -ge 10 ]
D. [ $x => 10 ]

Solution

  1. Step 1: Recall integer comparison operators in bash

    For greater than, bash uses -gt inside [ ]. The symbol > is for string comparison or redirection.
  2. Step 2: Check each option

    [ $x -gt 10 ] uses [ $x -gt 10 ] which is correct syntax for integer greater than check.
  3. Final Answer:

    [ $x -gt 10 ] -> Option B
  4. Quick Check:

    Greater than check uses -gt [OK]
Hint: Use -gt for greater than, not > inside [ ] [OK]
Common Mistakes:
  • Using > instead of -gt inside [ ]
  • Using => instead of -ge
  • Missing spaces around brackets and operators
3. What will be the output of this bash script snippet?
num=5
if [ $num -lt 10 ]; then
echo "Less"
else
echo "More"
fi
medium
A. Less
B. More
C. Syntax Error
D. No output

Solution

  1. Step 1: Evaluate the condition [ $num -lt 10 ]

    num is 5, 5 is less than 10, so condition is true.
  2. Step 2: Determine which branch runs

    Since condition is true, the then branch runs and prints "Less".
  3. Final Answer:

    Less -> Option A
  4. Quick Check:

    5 < 10 is true, prints Less [OK]
Hint: If condition true, then branch runs; else runs otherwise [OK]
Common Mistakes:
  • Confusing -lt with -le
  • Forgetting spaces inside [ ]
  • Using > instead of -lt
4. Identify the error in this bash snippet:
count=3
if [ $count -gt 5 ]
then
  echo "High"
fi
medium
A. No error, script runs fine
B. Missing semicolon or newline after condition
C. Missing spaces around brackets
D. Wrong operator -gt used

Solution

  1. Step 1: Check if the if condition syntax is correct

    The if condition line ends with ] but the next line is then. Bash requires a newline or semicolon after ] before then.
  2. Step 2: Identify the fix

    Add a newline (already present) or a semicolon after ] to separate condition and then. Here newline is present, so syntax is correct.
  3. Step 3: Re-examine the snippet

    Actually, the snippet as shown is correct syntax if newline is present after ] before then. If newline missing, error occurs.
  4. Final Answer:

    No error, script runs fine -> Option A
  5. Quick Check:

    if condition must end with newline or semicolon before then [OK]
Hint: Put newline or semicolon after ] before then [OK]
Common Mistakes:
  • Writing if [ condition ] then on same line without semicolon
  • Forgetting spaces inside [ ]
  • Using > instead of -gt
5. You want to write a bash script that prints "Valid" only if a variable age is between 18 and 30 inclusive. Which condition correctly checks this?
hard
A. [ $age -ge 18 -a $age -le 30 ]
B. [ $age -gt 18 -o $age -lt 30 ]
C. [ $age -ge 18 ] && [ $age -le 30 ]
D. [ $age -gt 18 -a $age -lt 30 ]

Solution

  1. Step 1: Understand the range condition

    We want age >= 18 and age <= 30 inclusive, so both conditions must be true.
  2. Step 2: Analyze each option

    [ $age -ge 18 -a $age -le 30 ] uses -a inside single [ ], which is valid but less recommended. [ $age -gt 18 -o $age -lt 30 ] uses -o (or), which is wrong. [ $age -ge 18 ] && [ $age -le 30 ] uses two separate [ ] with &&, which is correct and clear. [ $age -gt 18 -a $age -lt 30 ] uses > and < (not inclusive) and -a inside [ ].
  3. Final Answer:

    [ $age -ge 18 ] && [ $age -le 30 ] -> Option C
  4. Quick Check:

    Use && with separate [ ] for clear inclusive range [OK]
Hint: Use && with separate [ ] for AND conditions [OK]
Common Mistakes:
  • Using -o (OR) instead of AND
  • Using > and < instead of -ge and -le
  • Combining multiple conditions inside one [ ] with -a (less clear)
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