我正在尝试创建一个在rsync进程中运行的状态栏。这是我试过的代码。但这只是创造了一条永无止境的虚线。我认为它会在rsync结束时结束吗?
while (rsync -r /Volumes/foo /Volumes/bar) ; do
echo -n "."
done
答案 0 :(得分:1)
很明显,while
命令无效。您需要了解程序执行的顺序以及控制结构的工作方式。
幸运的是rsync
有自己的方式来显示进度。使用此:
rsync --progress -r /Volumes/foo /Volumes/bar
我不应该这样做,因为你必须学习编程,但这里有一个黑客如何实现这个目标:
rsync --progress -r /Volumes/foo /Volumes/bar | awk '{printf "."}'
我正在使用awk
将rsync's
进度输出的每一行替换为.
。这并不准确,因为每个文件都有多个输出行。但除非你在计算点数,否则它应该做得很好。你可以尝试改进它..(用于学习:)