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
なぜこれが得られるのか理解できません。スクリプトをこのようにするのは正確ではないと思います。誰かがシェルが何をしているのか、このメッセージを取り除く方法を説明できますか?
ありがとう