How to add a progress bar to a shell script?

后端 未结 30 2278
情歌与酒
情歌与酒 2020-11-22 05:48

When scripting in bash or any other shell in *NIX, while running a command that will take more than a few seconds, a progress bar is needed.

For example, copying a b

30条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-22 06:42

    This is only applicable using gnome zenity. Zenity provides a great native interface to bash scripts: https://help.gnome.org/users/zenity/stable/

    From Zenity Progress Bar Example:

    #!/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
    

提交回复
热议问题