📖 Scenario: You are writing a simple bash script to store and display messages exactly as they are typed, including special characters like $ and \.
🎯 Goal: Learn how to use single quotes in bash scripts to create literal strings that do not interpret special characters.
📋 What You'll Learn
Create a variable with a literal string using single quotes
Create a second variable with a string that includes special characters
Use echo to display the exact content of the variables
💡 Why This Matters
🌍 Real World
Scripts often need to handle file paths or messages with special characters exactly as typed, such as configuration files or user prompts.
💼 Career
Understanding how to use single quotes for literal strings is essential for writing reliable bash scripts in system administration and automation tasks.
Progress0 / 4 steps
1
Create a variable with a literal string using single quotes
Create a variable called message and assign it the exact string 'Hello, $USER!' using single quotes.
Bash Scripting
Hint
Use single quotes around the string to keep it literal.
2
Create a second variable with special characters
Create a variable called path and assign it the exact string 'C:\\Program Files\\MyApp' using single quotes.
Bash Scripting
Hint
Remember to double the backslashes inside single quotes to keep them literal.
3
Display the variables using echo
Use echo to print the variables message and path on separate lines.
Bash Scripting
Hint
Use double quotes around the variable names in echo to preserve spaces.
4
Run the script and check the output
Run the script and ensure the output exactly matches these two lines: Hello, $USER! C:\Program Files\MyApp
Bash Scripting
Hint
The output should show the dollar sign and backslashes exactly as typed.
Practice
(1/5)
1. What does enclosing text in single quotes 'text' do in a Bash script?
easy
A. Runs commands inside the quotes and replaces with output.
B. Allows variables inside to be expanded to their values.
C. Removes all spaces inside the quotes.
D. Treats the text exactly as written, no variable or command expansion.
Solution
Step 1: Understand single quotes behavior
Single quotes in Bash preserve the text literally without any expansion.
Step 2: Compare with other quotes
Double quotes allow variable and command expansion, but single quotes do not.
Final Answer:
Treats the text exactly as written, no variable or command expansion. -> Option D
Quick Check:
Single quotes = literal text [OK]
Hint: Single quotes keep text exactly as typed, no changes inside [OK]
Common Mistakes:
Thinking variables expand inside single quotes
Assuming commands run inside single quotes
Confusing single quotes with double quotes
2. Which of the following is the correct way to assign the literal string It's sunny to a variable weather using single quotes in Bash?
easy
A. weather='It's sunny'
B. weather='It'\''s sunny'
C. weather="It's sunny"
D. weather='It\'s sunny'
Solution
Step 1: Understand single quote limitation
Single quotes cannot contain a single quote directly inside; it ends the string.
Step 2: Use escape trick for single quote inside single quotes
Use 'It'\''s sunny' which closes, escapes, and reopens single quotes.
Final Answer:
weather='It'\''s sunny' -> Option B
Quick Check:
Single quote inside single quotes needs closing and escaping [OK]
Hint: Close, escape, reopen single quotes to include a single quote inside [OK]
Common Mistakes:
Putting single quote directly inside single quotes
Using backslash inside single quotes (ignored)
Confusing with double quotes for this case
3. What will be the output of this Bash script?
name='Alice'
echo 'Hello, $name!'
medium
A. Hello, Alice!
B. Hello, !
C. Hello, $name!
D. Syntax error
Solution
Step 1: Identify single quotes effect on variables
Variables inside single quotes are not expanded; they print literally.
Step 2: Check the echo output
Echo prints exactly 'Hello, $name!' as typed inside single quotes.
Final Answer:
Hello, $name! -> Option C
Quick Check:
Single quotes prevent variable expansion [OK]
Hint: Variables inside single quotes print as-is, no expansion [OK]
Common Mistakes:
Expecting variable to expand inside single quotes
Confusing single and double quotes
Assuming syntax error due to variable
4. The following script is intended to print Path: /usr/bin but it prints Path: $PATH instead. What is the error?
echo 'Path: $PATH'
medium
A. Single quotes prevent variable expansion, use double quotes instead.
B. Variable name is incorrect, should be lowercase path.
C. Missing backslash before $ to escape variable.
D. echo command syntax is wrong.
Solution
Step 1: Understand single quotes effect on variables
Single quotes treat $PATH literally, no expansion happens.
Step 2: Fix by using double quotes
Double quotes allow variable expansion, so use "Path: $PATH".
Final Answer:
Single quotes prevent variable expansion, use double quotes instead. -> Option A
Quick Check:
Single quotes block expansion, double quotes allow it [OK]
Hint: Use double quotes to expand variables, not single quotes [OK]
Common Mistakes:
Thinking variable name case matters here
Trying to escape $ inside single quotes (ignored)
Assuming echo syntax error
5. You want to create a Bash script that prints the exact text She said, 'Hello!' using a single echo command with single quotes. Which command will work correctly?
hard
A. echo 'She said, '\''Hello!\'''
B. echo 'She said, "Hello!"'
C. echo "She said, 'Hello!'"
D. echo 'She said, 'Hello!''
Solution
Step 1: Recognize single quote inside single quotes problem
Single quotes cannot contain single quotes directly; it ends the string.
Step 2: Use the escape trick to include single quote inside single quotes
Use 'She said, '\''Hello!\''' to close, escape, and reopen single quotes.
Final Answer:
echo 'She said, '\''Hello!\''' -> Option A
Quick Check:
Escape single quote inside single quotes by closing and reopening [OK]
Hint: Close, escape, reopen single quotes to include single quote inside [OK]
Common Mistakes:
Putting single quote directly inside single quotes
Using double quotes when single quotes required
Incorrectly escaping quotes inside single quotes
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.