我正在尝试为运行 uClinux 的嵌入式系统编写自动 md5sum 检查脚本。该脚本是在我的计算机上生成的,也是我要检查的 tar 文件。
脚本是这样的:
#!/bin/sh
filename='My_File'
md5='d4deeac6f655ee5d4b9ec150fc6957a5'
if test ! -e $filename.tar
then
echo Update file does not exist
exit 1
fi
if [ -z `md5sum "$filename.tar" | grep $md5` ]
then
echo 'md5sum is not correct'
exit 1
else
echo 'md5sum is correct'
fi
tar -xvf "$filename.tar"
[...]
md5sum 检查按预期运行,即当校验和错误时脚本停止,否则执行到最后。但是当校验和正确时,我会从控制台收到此消息:
[: My_File.tar: unknown operand
我不明白为什么会这样,而且我认为让我的脚本这样是不准确的。有人可以解释一下外壳在做什么以及如何摆脱此消息吗?
谢谢