moz*_*ech 10 bash string-comparison
尝试创建一个脚本来读取远程文件并检查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
Run Code Online (Sandbox Code Playgroud)
这回来了 line 4: [6135222a12f06b2dfce6a5c1b736891e: command not found
我尝试在$ LOCALMD5周围使用'或',但似乎从来没有能够比较输出.我做错了什么?谢谢
Joa*_*son 22
尝试;
if [ "$LOCALMD5" == "$REMOTEMD5" ]
Run Code Online (Sandbox Code Playgroud)
哪个应该更好.
编辑:我认为你的代码中有==和!=颠倒了.
我想它应该是这样的:
#!/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
Run Code Online (Sandbox Code Playgroud)
括号和值之间的空间很重要!