Cover Page by Randal K. Michael

Safari, the world’s most comprehensive technology and business learning platform.

Find the exact information you need to solve a problem on the fly, or go deeper to master the technologies and skills you need to succeed

Start Free Trial

No credit card required

O'Reilly logo

CHAPTER4

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

echo “.\c”

For Bourne and Bash shell, use

echo -e “.\c”

Find the exact information you need to solve a problem on the fly, or go deeper to master the technologies and skills you need to succeed

Start Free Trial

No credit card required