Linux/Unix: Show Progress Bar Graphical Window While Processing

Linux/Unix: Show Progress Bar Graphical Window While Processing

In this tutorial, you'll learn how to show progress bar graphical window while processing some data using shell script in Linux/Unix systems.

Here I am giving two shell script examples; in the first example, it will only display a progress bar window using the dialog command and will loop through 1 to 100. In the second example, it will perform the file copy operation and will display the progress using the progress bar.

If the dialog is not installed on your Linux system, then check the following example to install on Ubuntu Linux systems:

sudo apt-get install dialog

Example 1. Show Progress Bar Window in Linux

#!/bin/bash
declare -i COUNTER=1
{
while test $COUNTER -le 100
do
   echo $COUNTER
   COUNTER=COUNTER+1
   # do some task here
done
} | dialog --gauge "This is a progress bar" 10 50 0

Output

Linux: Show progress bar graphical window.

Example 2. Copy Files of Specified Criteria and Display Progress

#!/bin/bash
declare -i COUNTER=1
# Get total number of sh files into a variable
# Change the file type below
nfiles=`ls *.sh -f | wc -l`
# Get approx value to increment until 100
if [ $nfiles -gt 99 ]
then
   ivar=1
else
ivar=`expr 100 / $nfiles`
fi
{
for filename in *.sh
do
   echo $COUNTER
   COUNTER=COUNTER+ivar
   cp $filename $filename.bak
   if [ $COUNTER -ge 100 ]
   then 
       # reset to 1 if greater than 100
       COUNTER=1
   fi
done
# Dispay 100 if less than 100
COUNTER=100
echo $COUNTER
} | dialog --gauge "Please wait while backup in progress..." 10 50 0

exit 0

Output

Progress bar to display file copy progress in Linux.

See also: