例如下面的命令
# sha512sum /home/bin.tar
给出了这个输出:
7847a537b5db4434c075f18319caf12090cb0f19640190cbdf27e28a7b40b568127dfe9ec1c06604a87887ad403b618edeb42d1c41366b7a3e91d47b8d754ea4 /home/bin.tar
如何将此输出的哈希部分仅分配给bash中的变量,以便将计算出的哈希与另一个变量中的其他哈希进行比较?
我试过的只是在grep中指定匹配条件的部分(我只需要第一部分):
#! /bin/sh
RESULT="$(sha512sum /home/bin.tar | grep -o " /home/bin.tar")"
echo "Result:"
echo $RESULT
exit
输出
Result:
/home/bin.tar
答案 0 :(得分:3)
这应该这样做:
RESULT="$(sha512sum /home/bin.tar | cut -d' ' -f1)"
或
RESULT="$(sha512sum /home/bin.tar)"
RESULT="${RESULT%% *}"
或
RESULT="$(sha512sum /home/bin.tar | grep -o '^[^ ]*')"
答案 1 :(得分:2)
使用awk
RESULT="$(sha512sum /home/bin.tar | awk '{print $1}')"
或使用普通bash
数组。只需在控制台上运行这些命令即可。
md5Output=( $(sha512sum /home/bin.tar) ); printf "%s\n" ${md5Output[0]}