Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Double quotes (variable expansion) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What happens to variables inside double quotes in bash scripting?
Variables inside double quotes are expanded to their values. This means the shell replaces the variable name with its content.
Click to reveal answer
beginner
Compare single quotes and double quotes in bash regarding variable expansion.
Single quotes prevent variable expansion; everything inside is treated literally. Double quotes allow variable expansion, so variables inside are replaced by their values.
Click to reveal answer
intermediate
Why use double quotes around variables in bash scripts?
Double quotes protect the variable's value from word splitting and globbing, while still allowing the variable to expand. This helps avoid errors with spaces or special characters.
Click to reveal answer
beginner
Example: What is the output of this script?
name="Alice"
echo "Hello, $name!"
The output will be: Hello, Alice!
The variable $name is expanded inside the double quotes.
Click to reveal answer
beginner
What happens if you use double quotes but forget the $ sign before a variable?
The variable name is treated as a normal string, not expanded. For example, "Hello, name" prints exactly 'Hello, name' instead of the variable's value.
Click to reveal answer
What does double quotes do to variables in bash?
APrevent variables from expanding
BDelete variables
CExpand variables to their values
DConvert variables to uppercase
Which quotes prevent variable expansion in bash?
ADouble quotes
BNo quotes
CBackticks
DSingle quotes
Why should you put variables inside double quotes when using them?
ATo comment out variables
BTo allow expansion and prevent word splitting
CTo make variables uppercase
DTo delete variables
What will this command print?
name="Bob"
echo "Hi $name!"
AHi Bob!
BHi $name!
CHi name!
DError
What happens if you write echo "Hello, name" without $?
APrints Hello, name literally
BPrints the value of variable name
CPrints an error
DPrints nothing
Explain how double quotes affect variable expansion in bash scripting.
Think about how the shell treats variables inside different quotes.
You got /3 concepts.
    Describe a situation where forgetting to use double quotes around a variable could cause a problem.
    Imagine a variable with spaces used without quotes.
    You got /4 concepts.

      Practice

      (1/5)
      1. What happens when you use double quotes around a variable in bash, like "$name"?
      easy
      A. The variable name is replaced by its value inside the quotes.
      B. The variable name is treated as plain text, not replaced.
      C. The shell throws a syntax error.
      D. The variable is removed from the string.

      Solution

      1. Step 1: Understand variable expansion in double quotes

        In bash, variables inside double quotes are replaced by their values.
      2. Step 2: Compare with other quote types

        Single quotes prevent expansion, but double quotes allow it while preserving spaces.
      3. Final Answer:

        The variable name is replaced by its value inside the quotes. -> Option A
      4. Quick Check:

        Double quotes expand variables = A [OK]
      Hint: Double quotes expand variables, single quotes do not [OK]
      Common Mistakes:
      • Thinking variables inside double quotes are not expanded
      • Confusing single and double quotes
      • Expecting syntax error with double quotes
      2. Which of the following is the correct way to print the value of variable user with a greeting using double quotes in bash?
      easy
      A. echo 'Hello, $user!'
      B. echo "Hello, 'user'!"
      C. echo Hello, $user!
      D. echo "Hello, $user!"

      Solution

      1. Step 1: Identify correct quoting for variable expansion

        Double quotes allow variable $user to expand inside the string.
      2. Step 2: Check each option

        echo 'Hello, $user!' uses single quotes, so $user is literal. echo Hello, $user! lacks quotes, which can cause word splitting. echo "Hello, 'user'!" quotes 'user' literally inside double quotes.
      3. Final Answer:

        echo "Hello, $user!" -> Option D
      4. Quick Check:

        Use double quotes to expand variables in strings = B [OK]
      Hint: Use double quotes to expand variables inside strings [OK]
      Common Mistakes:
      • Using single quotes which prevent expansion
      • Not quoting strings with spaces
      • Mixing single and double quotes incorrectly
      3. Given the script:
      name="Alice"
      echo "Hello, $name!"
      echo 'Hello, $name!'

      What is the output?
      medium
      A. Hello, Alice! Hello, Alice!
      B. Hello, Alice! Hello, $name!
      C. Hello, $name! Hello, Alice!
      D. Hello, $name! Hello, $name!

      Solution

      1. Step 1: Analyze first echo with double quotes

        Double quotes expand $name to "Alice", so output is "Hello, Alice!".
      2. Step 2: Analyze second echo with single quotes

        Single quotes prevent expansion, so output is literally "Hello, $name!".
      3. Final Answer:

        Hello, Alice! Hello, $name! -> Option B
      4. Quick Check:

        Double quotes expand, single quotes do not = A [OK]
      Hint: Double quotes expand variables; single quotes print literally [OK]
      Common Mistakes:
      • Assuming single quotes expand variables
      • Confusing output order
      • Ignoring newline between echo commands
      4. Consider this script snippet:
      file="my file.txt"
      echo $file
      ls "$file"

      What is the problem and how to fix it?
      medium
      A. First echo should use double quotes to preserve spaces: echo "$file".
      B. Second line should remove quotes: ls $file.
      C. No problem; script works fine.
      D. Variable should be declared without quotes: file=my file.txt.

      Solution

      1. Step 1: Identify issue with first echo

        Without quotes, echo $file splits "my file.txt" into two words, printing as two separate arguments.
      2. Step 2: Fix by adding double quotes

        Using echo "$file" preserves the space and prints the full filename correctly.
      3. Final Answer:

        First echo should use double quotes to preserve spaces: echo "$file". -> Option A
      4. Quick Check:

        Quote variables to keep spaces intact = C [OK]
      Hint: Quote variables to keep spaces safe in commands [OK]
      Common Mistakes:
      • Not quoting variables with spaces
      • Removing quotes from commands that need them
      • Declaring variables without quotes causing errors
      5. You want to create a script that prints a message with a variable count inside double quotes, but only if count is not empty. Which is the best way to write this?
      hard
      A. if [ $count ]; then echo "Count is $count"; fi
      B. if [ $count ]; then echo 'Count is $count'; fi
      C. if [ "$count" ]; then echo "Count is $count"; fi
      D. if [ "$count" ]; then echo 'Count is $count'; fi

      Solution

      1. Step 1: Check condition with quotes

        Using [ "$count" ] safely tests if count is non-empty, even if it contains spaces or is unset.
      2. Step 2: Print message with double quotes

        Using double quotes in echo expands $count properly inside the string.
      3. Final Answer:

        if [ "$count" ]; then echo "Count is $count"; fi -> Option C
      4. Quick Check:

        Quote variables in tests and output for safety = D [OK]
      Hint: Quote variables in tests and output to avoid errors [OK]
      Common Mistakes:
      • Not quoting variable in test causing errors
      • Using single quotes in echo preventing expansion
      • Testing variable without quotes causing syntax errors
      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