1

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

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

ありがとう

4

1 に答える 1