Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Why input makes scripts interactive in Bash Scripting - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to read user input into a variable named 'name'.

Bash Scripting
read [1]
Drag options to blanks, or click blank then click option'
Aname
Binput
Cvar
Duser
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'input' as the variable name instead of 'name'.
Forgetting to specify a variable after 'read'.
2fill in blank
medium

Complete the code to prompt the user with 'Enter your age:' before reading input.

Bash Scripting
read -p "Enter your age: " [1]
Drag options to blanks, or click blank then click option'
Aage
Binput
Cuser
Dvar
Attempts:
3 left
💡 Hint
Common Mistakes
Not using the -p option to show a prompt.
Using a variable name unrelated to the data.
3fill in blank
hard

Fix the error in the code to correctly read input into 'color'.

Bash Scripting
read [1]
Drag options to blanks, or click blank then click option'
Aread
B$color
Ccolor
Dinput
Attempts:
3 left
💡 Hint
Common Mistakes
Using $ before the variable name in the read command.
Trying to use 'read' as a variable name.
4fill in blank
hard

Fill both blanks to read input into 'username' and then print a greeting.

Bash Scripting
read [1]
echo "Hello, $[2]!"
Drag options to blanks, or click blank then click option'
Ausername
Buser
Dname
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names for reading and printing.
Forgetting the $ sign when printing the variable.
5fill in blank
hard

Fill all three blanks to read a number, check if it is greater than 10, and print a message.

Bash Scripting
read [1]
if [ $[2] [3] 10 ]; then
  echo "Number is greater than 10"
fi
Drag options to blanks, or click blank then click option'
Anumber
C-gt
D-lt
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names for reading and checking.
Using the wrong comparison operator.
Forgetting the $ sign when referencing the variable.

Practice

(1/5)
1. Why does using read in a bash script make it interactive?
easy
A. Because it skips errors during execution
B. Because it runs the script faster
C. Because it automatically saves output to a file
D. Because it pauses the script to get input from the user

Solution

  1. Step 1: Understand what read does

    The read command waits for the user to type something and press Enter.
  2. Step 2: Connect read to interactivity

    Since the script waits for user input, it becomes interactive, asking questions and getting answers.
  3. Final Answer:

    Because it pauses the script to get input from the user -> Option D
  4. Quick Check:

    read pauses for input = A [OK]
Hint: Input pauses script to ask user questions [OK]
Common Mistakes:
  • Thinking read speeds up the script
  • Confusing input with output saving
  • Believing read skips errors
2. Which of these is the correct syntax to prompt the user and read their input into a variable named name?
easy
A. read -p "Enter your name: " name
B. input "Enter your name: " > name
C. echo "Enter your name: " | read name
D. read name "Enter your name: "

Solution

  1. Step 1: Identify the correct read usage with prompt

    The -p option with read shows a prompt before waiting for input.
  2. Step 2: Check variable assignment

    The variable name comes after the prompt option, so read -p "Enter your name: " name is correct.
  3. Final Answer:

    read -p "Enter your name: " name -> Option A
  4. Quick Check:

    Prompt with -p = D [OK]
Hint: Use read -p to prompt and read input [OK]
Common Mistakes:
  • Using input instead of read
  • Placing prompt after variable name
  • Piping echo into read incorrectly
3. What will be the output of this script if the user types John when prompted?
#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"
medium
A. Hello, !
B. Enter your name: John
C. Hello, John!
D. Error: name not defined

Solution

  1. Step 1: Understand the read command behavior

    The script prompts the user with "Enter your name: " and waits for input. The input is stored in variable name.
  2. Step 2: Check the echo output

    The echo command prints "Hello, " followed by the value of name and an exclamation mark. If user types "John", it prints "Hello, John!".
  3. Final Answer:

    Hello, John! -> Option C
  4. Quick Check:

    Input stored in name prints greeting = B [OK]
Hint: Input stored in variable prints in echo [OK]
Common Mistakes:
  • Ignoring variable substitution in echo
  • Expecting prompt text as output
  • Assuming variable is empty or undefined
4. This script is supposed to ask for a number and print it, but it doesn't work as expected:
#!/bin/bash
read "Enter a number: " num
echo "You entered: $num"
What is the main problem?
medium
A. Echo command is missing quotes
B. The prompt string should be after -p option in read
C. Variable name cannot be num
D. Script needs sudo to run read

Solution

  1. Step 1: Check the read syntax

    The read command requires the prompt string to be passed with the -p option, like read -p "prompt" variable.
  2. Step 2: Identify the error in the script

    The script uses read "Enter a number: " num which is invalid syntax; it should be read -p "Enter a number: " num.
  3. Final Answer:

    The prompt string should be after -p option in read -> Option B
  4. Quick Check:

    Use read -p for prompt = C [OK]
Hint: Prompt must use -p option with read [OK]
Common Mistakes:
  • Putting prompt string without -p
  • Thinking variable names are restricted
  • Believing echo needs sudo
5. You want to write a script that asks the user for their age and then prints if they are an adult or not. Which script correctly uses input to make it interactive and works as expected?
Option A:
read -p "Enter age: " age
if [ $age -ge 18 ]; then
  echo "Adult"
else
  echo "Not adult"
fi

Option B:
read age "Enter age: "
if [ $age -ge 18 ]; then
  echo "Adult"
else
  echo "Not adult"
fi

Option C:
read -p age "Enter age: "
if [ $age -ge 18 ]; then
  echo "Adult"
else
  echo "Not adult"
fi

Option D:
echo "Enter age: " | read age
if [ $age -ge 18 ]; then
  echo "Adult"
else
  echo "Not adult"
fi
hard
A. Option A
B. Option B
C. Option C
D. Option D

Solution

  1. Step 1: Check prompt and read syntax

    The correct usage is read -p "Enter age: " age to prompt and store input. Other options misuse syntax.
  2. Step 2: Verify conditional logic

    All options use the same if condition, which is correct. The difference is only in input reading.
  3. Final Answer:

    Option A -> Option A
  4. Quick Check:

    Correct prompt and read syntax = A [OK]
Hint: Use read -p before variable for input [OK]
Common Mistakes:
  • Placing prompt after variable name
  • Using pipe incorrectly with read
  • Misplacing -p option
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