Chapter 2. Creating Interactive Scripts

In Chapter 1, What and Why of Scripting with Bash, of this book we learned how to create a script and use some of its basics elements. These include optional parameters that we can pass through to the script when it is executed. In this chapter, we will extend this by using the read shell built-in command to allow for interactive scripts. Interactive scripts are scripts that prompt for information during the script execution. In doing so, we will cover the following topics:

  • Using echo with options
  • Basic script using read
  • Adding comments
  • Enhancing read scripts with prompts
  • Limiting the number of entered characters
  • Control the visibility of the entered text
  • Simple scripts to enforce our learning

Using echo with options

So far, in this book we have been able to see that the echo command is very useful and is going to be in many of our scripts, if not all. We have also seen that this is both a built-in command as well as a command file. When running the echo command, the built-in command will be used unless we state the full path to the file. We can test this with the following command:

$ test -a echo

To gain help on the built-in command, we can use man bash and search for echo; however, the echo command is identical to the internal command so I will recommend that you use man echo in most cases in order to display command options.

The basic use of echo that we have seen so far will produce a text output and a new line. This is often the desired response so we don't have to be concerned that the next prompt will append to the end of the echoed text. The new line separates the script output from the next shell prompt. If we do not supply any text string to print, echo will print only the new line to STDOUT. We can test this with the following command directly from the command line. We do not need to run echo or in fact any other command from a script. To run echo from the command line will simply enter the command as shown:

$ echo

The output will show a clear new line between the command we issued and the subsequent prompt. We can see this in the following screenshot:

Using echo with options

If we want to suppress the new line, especially useful if we are to prompt users, we can do this in the following two ways with the help of echo:

$ echo -n "Which directory do you want to use? "
$ echo -e "Which directory do you want to use? c"

The result will be to suppress the line feed. In the initial example, the -n option is used to suppress the line feed. The second example uses the more generic -e option, which allows escape sequences to be added to the text string. To continue on the same line, we use c as the escape sequence.

This does not look great as the final part of the script or when it is run from the command line, as the command prompt will follow. This is illustrated in the following screenshot:

Using echo with options
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.212.160