首页 > 解决方案 > 如何为命令很少的 shell 脚本添加进度条?

问题描述

我正在编写一个带有一些命令的shell 脚本。我想给它添加一个进度条。

例如-

Command 1 #Progress bar at 25%
Command 2 #Progress bar at 50%
Command 3 #Progress bar at 75%
Command 4 #Progress bar at 100%    

任何帮助是极大的赞赏。

编辑:我正在使用 linux 的 Bash 终端,并希望在终端中显示进度条。

标签: bashshellscriptingshzsh

解决方案


许多解决方案最简单的方法是使用 pv 等 externat 命令

du -h /var | tail -2 | pv 

更好的方法是在您的脚本中使用函数来显示条形图:

echo -ne '#####                     (33%)\r'
sleep 1
echo -ne '#############             (66%)\r'
sleep 1
echo -ne '#######################   (100%)\r'
echo -ne '\n'

甚至更好地使用滚动旋转:

sp='/-\|'
printf ' '
while true; do
    printf '\b%.1s' "$sp"
    sp=${sp#?}${sp%???}
done

您将任务作为背景和条形启动和/或作为前景旋转当然您会在信号上设置条件或陷阱以在任务/命令结束时停止它。


推荐阅读