回声“。”直到命令完成执行

时间:2015-02-06 01:55:51

标签: linux bash

我目前正试图弄清楚如何让bash在屏幕上绘制一系列点(有点像进度指示器),直到命令完成执行。例如,假设我想为wget下载绘制点:

wget -s http://url.tar.gz
until "above command has finished executing"; do
    echo -n "."
    sleep 0.05s
done

我可以使用" $!"或" $?"帮助解决这个问题?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

这将打印点,直到wget完成:

while sleep 0.1; do printf "."; done &
wget -q http://url.tar.gz
kill $!
echo ""

wget有自己的进度指标。以上使用-q将其关闭。

答案 1 :(得分:2)

感谢Squirrel,我能够解决这个问题。他向我指出了一个我重复的帖子shell - get exit code of background process。通过在我的脚本中添加以下内容,我能够按照我希望的方式运行:

wget -q http://url.example.com.tar.bz2 &
wget_pid=$!

while [ -d /proc/$wget_pid ]; do
    echo -n "."
    sleep 0.01s
done