Even though we have limited the input to a single character, we do get to see the text on the screen. In the same way, if we type the name, we get to see the entered text before we hit Enter. In this case, it is just untidy, but if we are entering sensitive data, such as a PIN or a password, we should hide the text. We can use the silent option, or -s, to achieve this. A simple edit in the script will set this in place:
#!/bin/bash
read -p "May I ask your name: " name
echo "Hello $name"
read -sn1 -p "Press any key to exit"
echo
exit 0
Now, when we use a key to continue, it will not be displayed on the screen. We can see the behavior of the script in the following screenshot: