在流程中创建虚线状态栏

时间:2014-02-20 16:50:30

标签: bash

我正在尝试创建一个在rsync进程中运行的状态栏。这是我试过的代码。但这只是创造了一条永无止境的虚线。我认为它会在rsync结束时结束吗?

while (rsync -r /Volumes/foo /Volumes/bar) ; do
echo -n  "."
done

1 个答案:

答案 0 :(得分:1)

很明显,while命令无效。您需要了解程序执行的顺序以及控制结构的工作方式。

幸运的是rsync有自己的方式来显示进度。使用此:

rsync --progress -r /Volumes/foo /Volumes/bar

我不应该这样做,因为你必须学习编程,但这里有一个黑客如何实现这个目标:

rsync --progress -r /Volumes/foo /Volumes/bar | awk '{printf "."}'

我正在使用awkrsync's进度输出的每一行替换为.。这并不准确,因为每个文件都有多个输出行。但除非你在计算点数,否则它应该做得很好。你可以尝试改进它..(用于学习:)