我目前正在设法弄清楚如何让bash在屏幕上绘制一系列点(类似进度指示器),直到命令执行完毕。 例如,说我想为wget下载画点:
wget -s http://url.tar.gz until "above command has finished executing"; do echo -n "." sleep 0.05s done
我可以使用“$!”吗? 或“$?” 帮助解决这个问题?
感谢您的帮助!
这将打印点,直到wget
完成:
while sleep 0.1; do printf "."; done & wget -q http://url.tar.gz kill $! echo ""
wget
有自己的进度指标。 以上使用-q
来关闭。
感谢松鼠,我能解决这个问题。 他指出我有一个线程,我有重复的shell – 获取后台进程的退出代码 。 通过添加以下内容到我的脚本,我能够得到它的工作,我希望如何:
wget -q http://url.example.com.tar.bz2 & wget_pid=$! while [ -d /proc/$wget_pid ]; do echo -n "." sleep 0.01s done