Use the --progress option.
Progress Dialog
Use the --progress option to create a progress dialog.
Zenity reads data from standard input line by line. If a line is prefixed with #, the text is updated with the text on that line. If a line contains only a number, the percentage is updated with that number.
The progress dialog supports the following options:
-
--text=text
Specifies the text that is displayed in the progress dialog.
-
--percentage=percentage
Specifies the initial percentage that is set in the progress dialog.
-
--auto-close
Closes the progress dialog when 100% has been reached.
-
--pulsate
Specifies that the progress bar pulsates until an EOF character is read from standard input.
The following example script shows how to create a progress dialog:
#!/bin/sh
(
echo "10" ; sleep 1
echo "# Updating mail logs" ; sleep 1
echo "20" ; sleep 1
echo "# Resetting cron jobs" ; sleep 1
echo "50" ; sleep 1
echo "This line will just be ignored" ; sleep 1
echo "75" ; sleep 1
echo "# Rebooting system" ; sleep 1
echo "100" ; sleep 1
) |
zenity --progress \
--title="Update System Logs" \
--text="Scanning mail logs..." \
--percentage=0
if [ "$?" = -1 ] ; then
zenity --error \
--text="Update canceled."
fi
Progress Dialog Example
Zenity progress dialog example