【发布时间】:2013-01-29 00:51:20
【问题描述】:
我正在编写一个简单的 MD5SUM 脚本。除了显示进度的部分(已计算给用户的文件的百分比)之外,它几乎完成了。我正在考虑使用带有虚拟变量的 while 循环来检查 MD5 是否已计算。唯一的问题是 md5sum(在 linux 上)不返回任何反馈,除非计算出实际的 md5sum。因此,很难向用户显示已处理了多少文件。这是脚本的副本。
#!/bin/bash
#MD5 verification tool
#1st argument is file name of .iso, and the 2nd argument is the the MD5 hexsum.
echo Checking file $1 .....
#calc md5 for file
SUM=`md5sum $1`
#insert while loop here?
#compare values
test $SUM = $2 && echo original || echo False
#8cd98b693ce542b671edecaed48ab06d8c
# GNOME-64.iso
exit 0
【问题讨论】:
-
只要您依赖
md5sum命令,您将无法显示准确的进度消息。如果您想显示进度,请考虑使用 Python 等编程语言(使用哈希库)滚动您自己的md5哈希程序。 -
(也就是说,您可以通过在子shell中计时命令并比较文件大小来非常粗略地估计进度......但它不会接近准确。)
-
当然可以,您只是测量正在消耗的数据,而不是 md5summing 的内部结构。