📖 Scenario: You are creating a simple script that asks a user for their favorite fruit and then shows a message with their answer.
🎯 Goal: Build a Bash script that prompts the user to enter their favorite fruit using read -p and then prints a message including their input.
📋 What You'll Learn
Use read -p to prompt the user with the exact text: "Enter your favorite fruit: "
Store the user input in a variable called fruit
Print the message: "Your favorite fruit is: <fruit>" where <fruit> is the user input
💡 Why This Matters
🌍 Real World
Scripts often need to ask users for information like names, choices, or passwords. Using <code>read -p</code> makes this easy and interactive.
💼 Career
Knowing how to prompt users in shell scripts is useful for system administrators, DevOps engineers, and anyone automating tasks on Linux or Unix systems.
Progress0 / 4 steps
1
Create a variable to store user input
Write a line of code that uses read -p to prompt the user with the text "Enter your favorite fruit: " and stores the input in a variable called fruit.
Bash Scripting
Hint
Use read -p "prompt text" variable to ask the user and save their answer.
2
Add a variable to hold a greeting message
Create a variable called greeting and set it to the exact string "Your favorite fruit is:".
Bash Scripting
Hint
Assign the string to greeting using = without spaces.
3
Combine greeting and user input in a message
Write a line of code that creates a variable called message which combines the greeting variable, a space, and the fruit variable.
Bash Scripting
Hint
Use double quotes and $ to insert variables inside the string.
4
Print the final message
Write a line of code that prints the message variable to the terminal using echo.
Bash Scripting
Hint
Use echo "$message" to show the combined message.
Try entering apple when prompted to test.
Practice
(1/5)
1. What does the read -p command do in a bash script?
easy
A. It deletes a file specified by the user.
B. It prints a message without waiting for user input.
C. It runs a command silently without showing output.
D. It prompts the user with a message and stores their input in a variable.
Solution
Step 1: Understand the purpose of read -p
The read -p command shows a prompt message and waits for user input.
Step 2: Identify what happens with the input
The input entered by the user is saved into a variable for later use in the script.
Final Answer:
It prompts the user with a message and stores their input in a variable. -> Option D
Quick Check:
read -p = prompt and store input [OK]
Hint: Remember: read -p asks and saves input in one step [OK]
Common Mistakes:
Thinking read -p only prints text without input
Confusing read -p with commands that delete files
Assuming it runs commands silently
2. Which of the following is the correct syntax to prompt the user with "Enter your name:" and save it in variable name?
easy
A. read name -p "Enter your name:"
B. read -name "Enter your name:"
C. read -p "Enter your name:" name
D. read -prompt "Enter your name:" name
Solution
Step 1: Recall the correct order of read -p
The correct syntax is read -p "prompt message" variable.
Step 2: Match the syntax with options
read -p "Enter your name:" name matches the correct syntax exactly: read -p "Enter your name:" name.
Final Answer:
read -p "Enter your name:" name -> Option C
Quick Check:
Syntax = read -p "prompt" variable [OK]
Hint: Remember: -p comes before the prompt string [OK]
Common Mistakes:
Placing variable before -p
Using invalid flags like -name or -prompt
Missing quotes around the prompt message
3. What will be the output of this script if the user enters "Alice"?
read -p "Enter your name: " user
echo "Hello, $user!"
medium
A. Hello, Alice!
B. Hello, user!
C. Enter your name: Hello, !
D. Syntax error
Solution
Step 1: Understand the read -p command
The script prompts "Enter your name: " and waits for input, storing it in variable user.
Step 2: Substitute the variable in the echo command
If the user types "Alice", $user becomes "Alice", so the echo prints "Hello, Alice!".
Final Answer:
Hello, Alice! -> Option A
Quick Check:
User input = Alice, output = Hello, Alice! [OK]
Hint: Variable stores input; echo prints it with $variable [OK]
Common Mistakes:
Expecting the prompt text to appear in output
Confusing variable name with literal text
Assuming syntax error without checking code
4. Identify the error in this script snippet:
read -p Enter your age: age
echo "You are $age years old."
medium
A. The read command cannot use -p.
B. Missing quotes around the prompt message.
C. The echo command syntax is wrong.
D. Variable name cannot be age.
Solution
Step 1: Check the read -p syntax
The prompt message after -p must be enclosed in quotes to be treated as a single string.
Step 2: Identify the missing quotes
The script has read -p Enter your age: age without quotes around "Enter your age:", causing a syntax error.
Final Answer:
Missing quotes around the prompt message. -> Option B
Quick Check:
Prompt message needs quotes [OK]
Hint: Always quote prompt text after -p [OK]
Common Mistakes:
Not quoting prompt text with spaces
Thinking variable names are restricted
Misreading echo syntax as error
5. You want to write a script that asks the user for their favorite color and then prints "Your favorite color is COLOR" where COLOR is their input. Which script correctly does this using read -p?
hard
A. read -p "Favorite color?" color
echo "Your favorite color is $color"
B. read color -p "Favorite color?"
echo "Your favorite color is $color"
C. read -p Favorite color? color
echo "Your favorite color is $color"
D. read -prompt "Favorite color?" color
echo "Your favorite color is $color"
Solution
Step 1: Verify the correct read -p syntax
The prompt message must be quoted and -p must come before the prompt string and variable.
Step 2: Check each option
read -p "Favorite color?" color
echo "Your favorite color is $color" uses read -p "Favorite color?" color which is correct. Others have wrong order, missing quotes, or invalid flags.
Final Answer:
read -p "Favorite color?" color
echo "Your favorite color is $color" -> Option A
Quick Check:
Correct syntax with quotes and variable last [OK]
Hint: Use read -p "prompt" variable with quotes [OK]
Common Mistakes:
Placing variable before -p
Not quoting prompt text
Using invalid flags like -prompt
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.