Progress Indicators Using a Series of Dots, a Rotating Line, or Elapsed Time
Giving your end users feedback that a script or program is not hung is vital on long processing jobs. We sometimes write shell scripts that take a long time to completely execute—for example, system-backup scripts and replicating data using rsync. A good way to keep everyone content is to have some kind of progress indicator. Just about anything can be a progress indicator as long as the end user gets the idea that job processing is continuing. In this chapter we are going to examine the following three progress indicators, which are fairly common:
- A series of dots
- A rotating line
- Elapsed time
We see the series-of-dots, rotating-line, and elapsed-time methods for user feedback in many installation programs, backup routines, and other long-running processes. Each of these methods can be started as a separate script, as a function, putting the code in a loop directly, or as a background process. We will cover the most common practices here.
Indicating Progress with a Series of Dots
The simplest form of progress indicator is to print a period to the screen every five seconds to five minutes, depending on the expected processing time. It is simple, clean, and very easy to do. As with every script, we start out with the command syntax. All we want to do is echo a dot to the screen while continuing on the same line.
For Korn shell, use
For Bourne and Bash shell, use
echo -e “.\c”