bash - 创建校验和文件脚本
问题描述
我正在尝试创建一个 shell 脚本,该脚本将自动运行校验和命令,并在计算后将当前和子目录中每个文件的校验和保存到一个文件中。如何通过变量或类似方法实现这一点?
我当前的脚本:
md5sum=1
sha1sum=2
sha256sum=3
sha512sum=4
# Ask user for checksum algorithm.
echo "Available checksum algorithms are MD5 [1], SHA-1 [2], SHA-256 [3], \
SHA-512 [4]."
echo "Checksum algorithm: "
read chkalg
# Create checksum file containing file checksums.
echo "Computing and saving list of checksums for all files recursively in \
directory."
if $chkalg == 1; then
find -type f -exec md5sum "{}" + > checksum-md5.txt
elif $chkalg == 2; then
find -type f -exec sha1sum "{}" + > checksum-sha1sum.txt
elif $chkalg == 3; then
find -type f -exec sha256sum "{}" + > checksum-sha256sum.txt
elif $chkalg == 4; then
find -type f -exec sha512sum "{}" + > checksum-sha512sum.txt
elif echo "Invalid choice."
fi
# Notify user of checksum file creation completion.
echo "Checksums saved to file."
解决方案
if
需要修改为bash
if [ "$chkalg" -eq 1 ]; then
find -type f -exec md5sum "{}" + > checksum-md5.txt
elif [ "$chkalg" -eq 2 ]; then
find -type f -exec sha1sum "{}" + > checksum-sha1sum.txt
elif [ "$chkalg" -eq 3 ]; then
find -type f -exec sha256sum "{}" + > checksum-sha256sum.txt
elif [ "$chkalg" -eq 4 ]; then
find -type f -exec sha512sum "{}" + > checksum-sha512sum.txt
elif echo "Invalid choice."
fi
将登录名放在方括号中,变量放在引号中并-eq
用于比较数字
推荐阅读
- jquery - 附加 html 创建具有不同顺序的输入
- ios - 完成多个 UIWebView 请求后,如何在 UITableViewCell 中找到活动指示器?
- r - 如何在 R 中仅使用 lapply 命名列表元素
- server - FlowForce - 监控和警报工具
- csv - 将 CSV 文件正确导入 Neo4j 数据库
- python - 为什么“或”不返回布尔值?
- swift4 - Swift4 中 MKPolygon 的指定初始化程序是什么?
- python - 创建一维数组,其中元素是存储函数的二维 numpy 数组的总和
- objective-c - OSX 自定义授权插件因升级到 Mojave 而中断
- php - 通过 jQuery Ajax 将数据作为 JSON 发送到带有 cURL 的 PHP Rest API