admin 管理员组文章数量: 1184232
function verify_md5(){
echo_message "Verifying"
cd "${script_dir}" > /dev/null 2>&1
RESULT=`bash verify_md5.sh 2>&1 | tee -a "${logfile}"`
echo "$RESULT" | grep 'FAILED'
if [ $? -eq 0 ]; then
# FOUND FAILED
echo "$RESULT" | grep 'WARNING'
raise "Verify failed"
else
echo_success "Verify success"
fi
}这个脚本是一个名为 `verify_md5` 的 Bash 函数,它的主要目的是验证某个文件或一组文件的 MD5 哈希值。
cd "${script_dir}" > /dev/null 2>&1
* 使用 `cd` 命令切换到 `${script_dir}` 变量指定的目录。`${script_dir}` 应该是一个在此函数之外定义的变量,存储着要验证的文件或脚本所在的目录路径。
* `> /dev/null 2>&1` 是将标准输出(stdout)和标准错误(stderr)都重定向到 `/dev/null`,也就是忽略所有输出和错误信息,使这个命令在执行时不会在控制台显示任何信息。
RESULT=`bash verify_md5.sh 2>&1 | tee -a "${logfile}"`
* 使用 `bash` 命令执行 `verify_md5.sh` 脚本,并将标准错误重定向到标准输出(`2>&1`)。
* `tee -a "${logfile}"` 命令将输出内容同时显示在控制台上,并追加到 `${logfile}` 变量指定的日志文件中。`${logfile}` 也应该是一个在此函数之外定义的变量,存储着日志文件的路径。
* `RESULT` 变量存储了 `verify_md5.sh` 脚本的输出内容。
echo "$RESULT" | grep 'FAILED'* 使用 `echo` 命令将 `RESULT` 变量的内容输出,并通过管道传递给 `grep` 命令来搜索包含 'FAILED' 的行。
if [ $? -eq 0 ]; then* `$?` 是一个特殊的 Bash 变量,存储了上一个命令(在这里是 `grep 'FAILED'`)的退出状态。如果 `grep` 命令找到了匹配的行,它会返回 0,表示成功。
echo "$RESULT" | grep 'WARNING'* 如果 `grep 'FAILED'` 命令成功(即找到了包含 'FAILED' 的行),则继续执行这一行,搜索包含 'WARNING' 的行。
raise "Verify failed"* 调用一个名为 `raise` 的函数(这个函数在给出的代码段中没有定义,可能是在其他地方定义的),并传递字符串 "Verify failed" 作为参数。这个函数的目的可能是抛出一个错误或异常,终止脚本的执行。
else
echo_success "Verify success"
fi
}* 如果 `grep 'FAILED'` 命令没有成功(即没有找到包含 'FAILED' 的行),则执行 `else` 分支,调用 `echo_success` 函数(这个函数在给出的代码段中没有定义,可能是在其他地方定义的)并传递字符串 "Verify success" 作为参数。这个函数的目的可能是输出一条表示验证成功的消息。 **举例说明**: 假设你有一个名为 `files.txt` 的文件,其中包含了一些文件的 MD5 哈希值,以及一个名为 `files_to_verify.txt` 的文件,其中包含了你要验证的文件路径。`verify_md5.sh` 脚本可能会读取这两个文件,计算每个文件的 MD5 哈希值,并与 `files.txt` 中的值进行比较。
# 假设的 files.txt 内容
file1.txt 1234567890abcdef
file2.txt abcdef1234567890
# 假设的 files_to_verify.txt 内容
/path/to/file1.txt
/path/to/file2.txt如果 `file1.txt` 的 MD5 哈希值与 `files.txt` 中的值匹配,而 `file2.txt` 的不匹配,那么 `verify_md5.sh` 可能会输出类似以下内容:
file1.txt: OK
file2.txt: FAILED (actual MD5: 0123456789abcdef0)然后,`verify_md5` 函数会读取这个输出,找到包含 'FAILED' 的行,调用 `raise` 函数抛出一个
版权声明:本文标题:verify_md5":轻松检测并验证你所有SWF文件的MD5完整性。 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1771473876a3545017.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论