Bird
Raised Fist0
Bash Scriptingscripting~5 mins

String comparisons (=, !=, -z, -n) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the '=' operator do in bash string comparisons?
The '=' operator checks if two strings are exactly equal. It returns true if they match.
Click to reveal answer
beginner
How do you check if two strings are NOT equal in bash?
Use the '!=' operator inside a test condition. It returns true if the strings differ.
Click to reveal answer
beginner
What does '-z' check in bash string tests?
The '-z' operator checks if a string is empty (zero length). It returns true if the string has no characters.
Click to reveal answer
beginner
What does '-n' check in bash string tests?
The '-n' operator checks if a string is not empty. It returns true if the string has one or more characters.
Click to reveal answer
beginner
Write a simple bash if statement to check if variable 'name' is empty.
if [ -z "$name" ]; then echo "Name is empty" fi This uses '-z' to test if 'name' has zero length.
Click to reveal answer
Which operator checks if two strings are equal in bash?
A-z
B!=
C=
D-n
What does the '-z' operator test for in bash?
AString is not empty
BString is empty
CStrings are equal
DStrings are not equal
How do you test if two strings are NOT equal in bash?
A!=
B-n
C-z
D=
Which operator returns true if a string is NOT empty?
A-n
B-z
C=
D!=
What will this bash test return? [ -z "hello" ]
ATrue
BError
CDepends on shell
DFalse
Explain how to check if a string variable is empty or not in bash using string comparison operators.
Think about testing zero length strings.
You got /4 concepts.
    Describe the difference between '=' and '!=' operators in bash string comparisons.
    One checks if strings match, the other if they differ.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which operator in bash scripting checks if two strings are equal?
      easy
      A. Using = inside double brackets [[ ]]
      B. Using -z to check string length
      C. Using != inside double brackets [[ ]]
      D. Using -n to check if string is not empty

      Solution

      1. Step 1: Understand string equality operator

        In bash, = inside [[ ]] compares if two strings are equal.
      2. Step 2: Differentiate from other operators

        -z checks if string is empty, != checks inequality, -n checks non-empty string.
      3. Final Answer:

        Using = inside double brackets [[ ]] -> Option A
      4. Quick Check:

        String equality = = [OK]
      Hint: Use = inside [[ ]] to check if strings are equal [OK]
      Common Mistakes:
      • Confusing = with -z or -n
      • Using = outside [[ ]] without quotes
      • Mixing != with = for equality
      2. Which of the following is the correct syntax to check if a variable var is not empty in bash?
      easy
      A. [ -z "$var" ]
      B. [ "$var" = "" ]
      C. [ -n "$var" ]
      D. [ $var != "" ]

      Solution

      1. Step 1: Understand -n operator

        -n returns true if the string length is greater than zero (not empty).
      2. Step 2: Check syntax correctness

        Using quotes around $var prevents errors if variable is empty or contains spaces.
      3. Final Answer:

        [ -n "$var" ] -> Option C
      4. Quick Check:

        Not empty check = -n [OK]
      Hint: Use [ -n "$var" ] to test if var is not empty [OK]
      Common Mistakes:
      • Using -z instead of -n for not empty
      • Forgetting quotes around variable
      • Using = "" to check emptiness incorrectly
      3. What will be the output of this bash script snippet?
      var="hello"
      if [[ "$var" != "world" ]]; then
        echo "Not world"
      else
        echo "World"
      fi
      medium
      A. Not world
      B. World
      C. Syntax error
      D. No output

      Solution

      1. Step 1: Evaluate string comparison

        Variable var is "hello", which is not equal to "world".
      2. Step 2: Determine which branch runs

        The condition [[ "$var" != "world" ]] is true, so it echoes "Not world".
      3. Final Answer:

        Not world -> Option A
      4. Quick Check:

        hello != world -> Not world [OK]
      Hint: If strings differ, != condition is true [OK]
      Common Mistakes:
      • Confusing = and != operators
      • Missing quotes causing syntax errors
      • Assuming else branch runs when condition is true
      4. Identify the error in this bash snippet that checks if input is empty:
      if [ -z $input ]; then
        echo "Empty"
      else
        echo "Not empty"
      fi
      medium
      A. Using -z instead of -n
      B. Missing quotes around $input in test
      C. Using single brackets instead of double brackets
      D. No error, script is correct

      Solution

      1. Step 1: Check variable quoting in test

        Variable $input is not quoted, which can cause errors if empty or contains spaces.
      2. Step 2: Understand correct syntax

        Quotes around $input like "$input" are needed to safely test emptiness.
      3. Final Answer:

        Missing quotes around $input in test -> Option B
      4. Quick Check:

        Always quote variables in tests [OK]
      Hint: Always quote variables in [ ] tests to avoid errors [OK]
      Common Mistakes:
      • Forgetting quotes around variables
      • Thinking -z and -n are interchangeable
      • Believing single brackets can't test strings
      5. You want to write a bash script that prints "Empty string" if variable text is empty, and "Has content" otherwise. Which snippet correctly does this?
      hard
      A. if [ "$text" != "" ]; then echo "Empty string"; else echo "Has content"; fi
      B. if [[ "$text" = "" ]]; then echo "Has content"; else echo "Empty string"; fi
      C. if [ -n "$text" ]; then echo "Empty string"; else echo "Has content"; fi
      D. if [[ -z "$text" ]]; then echo "Empty string"; else echo "Has content"; fi

      Solution

      1. Step 1: Understand -z usage

        -z "$text" returns true if text is empty.
      2. Step 2: Check echo outputs match condition

        If empty, print "Empty string"; else print "Has content". if [[ -z "$text" ]]; then echo "Empty string"; else echo "Has content"; fi matches this logic correctly.
      3. Final Answer:

        if [[ -z "$text" ]]; then echo "Empty string"; else echo "Has content"; fi -> Option D
      4. Quick Check:

        -z empty -> print "Empty string" [OK]
      Hint: Use if [[ -z "$var" ]] for empty string check [OK]
      Common Mistakes:
      • Swapping outputs for empty and non-empty cases
      • Using = "" without quotes or wrong logic
      • Confusing -n and -z meanings
      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