小编典典

如何在 shell 脚本中添加进度条?

all

在 bash 或 *NIX 中的任何其他 shell 中编写脚本时,在运行需要几秒钟以上的命令时,需要一个进度条。

例如,复制一个大文件,打开一个大 tar 文件。

您推荐哪些方式向 shell 脚本添加进度条?


阅读 297

收藏
2022-03-13

共1个答案

小编典典

您可以通过覆盖一行来实现这一点。用于\r返回行首而不写入\n终端。

完成后写下\n以推进该行。

用于echo -ne

  1. 不打印\n
  2. 识别转义序列,如\r.

这是一个演示:

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

在下面的评论中,puk 提到如果您从长行开始然后想写短行,则此“失败”:在这种情况下,您需要覆盖长行的长度(例如,使用空格)。

2022-03-13