尝试创建一个脚本来读取远程文件并检查 md5 校验和并在不匹配时发出警报,但出现我无法理解的错误。
#!/bin/sh
REMOTEMD5=$(ssh user@host 'md5sum file.txt')
LOCALMD5=$(md5sum 'file.txt')
if [$LOCALMD5 !== $REMOTEMD5]
then
echo "all OK"
else
echo -e "no match, Local:"$LOCALMD5"\nRemote:"$REMOTEMD5
fi
这将返回 第 4 行:[6135222a12f06b2dfce6a5c1b736891e:找不到命令
我试过在 $LOCALMD5 周围使用 ' 或 ",但似乎永远无法用它来比较输出。我做错了什么? 谢谢
最佳答案
尝试;
if [ "$LOCALMD5" == "$REMOTEMD5" ]
哪个应该效果更好。
编辑:我认为您的代码中的 == 和 != 颠倒了。
关于bash - 比较输出而不是命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8793558/