Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Double quotes (variable expansion) 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 print the value of the variable name using double quotes.

Bash Scripting
name="Alice"
echo [1]
Drag options to blanks, or click blank then click option'
A'$name'
B"$name"
C$name
D"name"
Attempts:
3 left
💡 Hint
Common Mistakes
Using single quotes prevents the variable from expanding.
Not using quotes can cause issues if the variable contains spaces.
2fill in blank
medium

Complete the code to assign the variable greeting a string that includes the variable name expanded inside double quotes.

Bash Scripting
name="Bob"
greeting=[1]
Drag options to blanks, or click blank then click option'
A"Hello, $name!"
B'Hello, $name!'
CHello, $name!
D"Hello, name!"
Attempts:
3 left
💡 Hint
Common Mistakes
Using single quotes causes the variable name to be printed literally.
Not using quotes can cause syntax errors if the string has spaces.
3fill in blank
hard

Fix the error in the code to correctly print the variable path with spaces using double quotes.

Bash Scripting
path="/home/user/My Documents"
echo [1]
Drag options to blanks, or click blank then click option'
Apath
B'$path'
C$path
D"$path"
Attempts:
3 left
💡 Hint
Common Mistakes
Not quoting the variable causes the path to split into multiple words.
Using single quotes prevents variable expansion.
4fill in blank
hard

Fill both blanks to create a command that prints the variable file with variable expansion and preserves spaces.

Bash Scripting
file="My File.txt"
echo [1][2]
Drag options to blanks, or click blank then click option'
A"
B'
C$file
Dfile
Attempts:
3 left
💡 Hint
Common Mistakes
Using single quotes prevents variable expansion.
Not quoting the variable causes word splitting.
5fill in blank
hard

Fill all three blanks to assign message a string that includes the variable user expanded inside double quotes and an exclamation mark.

Bash Scripting
user="Eve"
message=[1]Hello, [2][3]
Drag options to blanks, or click blank then click option'
A"
B$user
C!"
D'
Attempts:
3 left
💡 Hint
Common Mistakes
Using single quotes prevents variable expansion.
Forgetting to close the double quotes causes errors.

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