Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Silent input with read -s (passwords) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the -s option do in the read command in bash?
The -s option makes the input silent, so what you type is not shown on the screen. This is useful for entering passwords.
Click to reveal answer
beginner
How can you prompt a user to enter a password silently in bash?
Use read -s -p "Enter password: " password. The -p shows the prompt, and -s hides the input.
Click to reveal answer
beginner
Why is silent input important when asking for passwords?
Silent input prevents others from seeing your password on the screen, protecting your privacy and security.
Click to reveal answer
intermediate
What happens if you use read -s without -p?
The input will be silent, but no prompt message will be shown. The user might not know what to type.
Click to reveal answer
beginner
How can you make sure the user pressed Enter after typing a silent password?
The read command waits for Enter by default, so after typing the password silently, pressing Enter submits the input.
Click to reveal answer
What does the -s option do in the bash read command?
ASaves the input to a file
BShows the input typed by the user
CHides the input typed by the user
DSkips the input prompt
Which command correctly prompts for a password silently with a message?
Aread -s -p "Password: " password
Bread -p "Password: " -s password
Cread password -s -p "Password: "
Dread password -p -s "Password: "
What will happen if you use read -s password without -p?
AInput will be visible and prompt shown
BInput will be silent but no prompt shown
CInput will be silent and prompt shown
DCommand will fail
Why is it important to use silent input for passwords?
ATo encrypt the password automatically
BTo speed up typing
CTo save password to a file
DTo prevent password from showing on screen
After typing a password silently with read -s, how does the user submit the input?
APress Enter key
BPress Ctrl+C
CType 'submit'
DInput submits automatically after 5 seconds
Explain how to use the read command to get a password silently from a user in bash.
Think about hiding input and showing a prompt.
You got /4 concepts.
    Why should you use silent input when asking for passwords in scripts?
    Consider what happens if someone looks at your screen.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the -s option do when used with the read command in bash scripting?
      easy
      A. It hides the user input on the terminal (silent input).
      B. It shows the input characters in uppercase.
      C. It saves the input to a file automatically.
      D. It pauses the script until a key is pressed.

      Solution

      1. Step 1: Understand the purpose of read -s

        The -s option in read hides the input typed by the user, making it silent on the terminal.
      2. Step 2: Compare with other options

        Other options do not hide input; -s is specifically for silent input, useful for passwords.
      3. Final Answer:

        It hides the user input on the terminal (silent input). -> Option A
      4. Quick Check:

        read -s = silent input [OK]
      Hint: Remember: -s means silent input, no characters shown [OK]
      Common Mistakes:
      • Thinking -s shows input in uppercase
      • Confusing -s with saving input to file
      • Assuming -s pauses the script
      2. Which of the following is the correct syntax to silently read a password with a prompt in bash?
      easy
      A. read -p "Enter password:" password -s
      B. read password -p -s "Enter password:"
      C. read -s -p "Enter password:" password
      D. read password -s -p "Enter password:"

      Solution

      1. Step 1: Recall correct option order for read

        The options -s and -p must come before the variable name.
      2. Step 2: Check each option's position

        read -s -p "Enter password:" password correctly places -s and -p before the variable password.
      3. Final Answer:

        read -s -p "Enter password:" password -> Option C
      4. Quick Check:

        Options before variable = correct syntax [OK]
      Hint: Options (-s, -p) always come before variable name [OK]
      Common Mistakes:
      • Placing options after variable name
      • Mixing order of -s and -p incorrectly
      • Using -p without quotes for prompt
      3. What will be the output of this script snippet?
      read -s -p "Enter secret: " secret
      
      echo "You entered: $secret"
      medium
      A. The prompt appears, input is visible, then prints 'You entered: [input]'.
      B. The prompt does not appear, input is visible, then prints 'You entered: [input]'.
      C. The script throws a syntax error.
      D. The prompt 'Enter secret: ' appears, input is hidden, then prints 'You entered: [input]'.

      Solution

      1. Step 1: Analyze the read -s -p behavior

        The prompt string is shown, but the input typed is hidden (silent).
      2. Step 2: Understand the echo output

        After input, the script prints the entered value with the message.
      3. Final Answer:

        The prompt 'Enter secret: ' appears, input is hidden, then prints 'You entered: [input]'. -> Option D
      4. Quick Check:

        read -s -p shows prompt, hides input [OK]
      Hint: Prompt shows, input hidden, echo prints input [OK]
      Common Mistakes:
      • Assuming input is visible with -s
      • Thinking prompt won't show
      • Expecting syntax error
      4. Identify the error in this script snippet:
      read -p "Enter password:" password -s
      echo "Password is $password"
      medium
      A. The prompt string is missing quotes.
      B. The -s option is placed after the variable name.
      C. The variable name should be before options.
      D. There is no error; the script works fine.

      Solution

      1. Step 1: Check option placement in read

        Options like -s must come before the variable name; here it is after.
      2. Step 2: Understand the consequences

        Placing -s after the variable name treats it as another variable name instead of an option, so input is not hidden.
      3. Final Answer:

        The -s option is placed after the variable name. -> Option B
      4. Quick Check:

        Options after variable = treated as names [OK]
      Hint: Put all options before variable name to avoid errors [OK]
      Common Mistakes:
      • Placing options after variable name
      • Assuming the script hides input correctly
      • Assuming prompt needs no quotes
      5. You want to create a bash script that asks the user for a password silently, then confirms the password by asking again silently. Which script snippet correctly implements this?
      hard
      A. read -s -p "Enter password: " pass read -s -p "Confirm password: " pass2 if [[ "$pass" == "$pass2" ]]; then echo "Passwords match"; else echo "Mismatch"; fi
      B. read -p "Enter password: " -s pass read -p "Confirm password: " -s pass2 if [ $pass = $pass2 ]; then echo "Passwords match"; else echo "Mismatch"; fi
      C. read -s pass "Enter password: " read -s pass2 "Confirm password: " if [[ $pass == $pass2 ]]; then echo "Passwords match"; else echo "Mismatch"; fi
      D. read pass -s -p "Enter password: " read pass2 -s -p "Confirm password: " if [[ "$pass" = "$pass2" ]]; then echo "Passwords match"; else echo "Mismatch"; fi

      Solution

      1. Step 1: Verify correct syntax for silent input with prompt

        The read -s -p "Enter password: " pass read -s -p "Confirm password: " pass2 if [[ "$pass" == "$pass2" ]]; then echo "Passwords match"; else echo "Mismatch"; fi uses read -s -p "prompt" variable correctly for both inputs.
      2. Step 2: Check password comparison syntax

        The read -s -p "Enter password: " pass read -s -p "Confirm password: " pass2 if [[ "$pass" == "$pass2" ]]; then echo "Passwords match"; else echo "Mismatch"; fi uses double brackets and quotes around variables, which is safe and correct for string comparison.
      3. Final Answer:

        read -s -p "Enter password: " pass read -s -p "Confirm password: " pass2 if [[ "$pass" == "$pass2" ]]; then echo "Passwords match"; else echo "Mismatch"; fi -> Option A
      4. Quick Check:

        Correct option order and safe comparison = read -s -p "Enter password: " pass read -s -p "Confirm password: " pass2 if [[ "$pass" == "$pass2" ]]; then echo "Passwords match"; else echo "Mismatch"; fi [OK]
      Hint: Use read -s -p and double brackets with quotes for comparison [OK]
      Common Mistakes:
      • Placing options after variable name
      • Using single brackets without quotes for strings
      • Incorrect order of arguments in read
      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