When used as part of a script that prompts for user input, the suppression of the line feed is exactly what we want. We will begin by copying the existing hello2.sh script to hello3.sh and build an interactive script. Initially, we will use echo as the prompt mechanism, but, as we gradually enhance the script, we will generate the prompt directly from the shell built-in read command:
$ cp $HOME/bin/hello2.sh $HOME/bin/hello3.sh
$ chmod +x $HOME/bin/hello3.sh
Edit the $HOME/bin/hello3.sh script so that it reads as follows:
#!/bin/bash
echo -n "Hello $(basename $0)! May I ask your name: "
read
echo "Hello $REPLY"
exit 0
As we execute the script, we will be greeted and prompted with whatever is typed. This is echoed using the $REPLY variable in the echo statement. As we have not yet supplied a variable name to the read built-in command, the default $REPLY variable is used. The script execution and output are shown in the following screenshot. Take some time to practice the script on your own system.
This little step has taken us a long way and there are many uses for a script like this; we have all used installation scripts that prompt for options and directories as we run through the install. We accept that it is still quite trivial, but, as we delve into the chapter, we will get closer to some more useful scripts.