我正在使用 Carbon Copy Cloner 克隆我的硬盘驱动器,以准备全新安装 Mountain Lion。该过程似乎停留在从 robottinosino.sparsebundle 图像中复制带上。
为了检查“某物”是否在移动,我使用了这个非常粗糙的 CLI 脚本:
rsync -n -avv --delete /Users/robottinosino/robottinosino.sparsebundle/ /Volumes/AppleSSD_Clone_2012-09-03/Users/robottinosino/robottinosino.sparsebundle/ | grep -v ' is uptodate$' | grep bands | wc -l
我模拟rsync
但不运行它(-n 选项),我过滤掉确认波段相同的行,仅选择描述仍需要复制的波段的行并计算仍待处理的波段数。
现在我想知道这个过程进展的速度有多快,说“每秒多少个波段”,因为它已经有几天了......如果它可以在它之前完成,我不想停止它周末。如果不能在周末之前完成,我最好现在停止它,因为无论如何我都必须中止。
假设我将上面的 hack 定义为 function x() { ... } 并使用这种可憎的方法来计算“bands/second”:
start_seconds=$(date +%s); bands_at_start=$(x); sleep 6; bands_at_end=$(x); end_seconds=$(date +%s); total_seconds=$((end_seconds-start_seconds)); total_bands=$((bands_at_start-bands_at_end)); bands_per_second=$((total_bands/total_seconds)); echo $bands_per_second
这给出了垃圾结果。
问题是我在做整数除法吗?我可以在 Bash 中进行浮点/双除吗?有没有更正常的方式使用 shell 脚本来做到这一点?
我是初学者,不要贬低我。在此先感谢您的帮助。
编辑:我正在尝试这个来规避整数除法:
bands_per_second=$(echo "scale=10; $total_bands/$total_seconds" | bc);
但是必须有更好的方法在 Bash/shell 脚本或其他一些脚本工具中执行此计时?你知道,剩下这么多(数千,如果上面的计数是正确的)乐队,我真的无法估计是否值得继续......