我正在尝试将复制文件的哈希值与bash进行比较,但条件不工作。
└──╼ $bash check-256.sh cal.sh 2cal.sh
ea8f4b5acdeb26015661ee27c9000af97691a0fd715be94b2b3eda6a3d02c789 cal.sh
ea8f4b5acdeb26015661ee27c9000af97691a0fd715be94b2b3eda6a3d02c789 2cal.sh
#!/bin/bash
First_file=$(sha256sum $1)
Second_file=$(sha256sum $2)
echo "$First_file"
echo "$Second_file"
[ "$First_file" == "$Second_file" ] && echo "Pass" || echo "Fail"
条件失败,因为结果字符串实际上不相同。您需要使用cut命令来删除哈希。
#!/bin/bash
First_file=$(sha256sum $1 | cut -d' ' -f1)
Second_file=$(sha256sum $2 | cut -d' ' -f1)
echo "$First_file"
echo "$Second_file"
[ "$First_file" == "$Second_file" ] && echo "Pass" || echo "Fail"
cut -d' ' -f1
- -d指定分隔符。在本例中,我们使用单个空格
- -f1选择输出字段。这里我们只需要第一个字段,也就是哈希值