ファイルのMD5ハッシュを生成し、それを以前の実行の保存されたハッシュと比較し、異なっている場合、保存されたハッシュを更新するMakefileルールがあります。 (そのタイムスタンプが常に新しく、彼らは本当に変更かどうMD5ハッシュせずに、私が知っているだろうので、私は、データベースから生成されているいくつかのファイルを持っている。)ここでは、次のとおりです。Bashの条件文がCygwinの下で動作しない
CURR=`$(MD5) -q $<`; \
PREV=`if [ -e [email protected] ] ; then cat [email protected] ; fi` ; \
if [ "$$CURR" != "$$PREV" ]; then echo $$CURR > [email protected] ; fi
($(MD5)
ここでのCygwin上のMac上md5
とmd5deep
あるmd5
ツールです。)
これは、Mac OS Xの下bash
で正常に動作しますが、Cygwinの下に動作しないいくつかの理由について。私。それは実行されますが、条件は常にtrueに評価されるため、常にハッシュが更新されます。私はecho $$CURR $$PREV
を追加しました。ハッシュは同じに見えますが、ハッシュファイルは常に更新されます。
私には何が欠けていますか?
私は、bashの初心者ですが、私は考えていませんif文の後にセミコロンを付ける必要があります。 http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html#sect_07_01_02 –
いいえ、いいね。 – BjoernD
ポイントにならないのですが、なぜMD5を比較するのですか?両方のファイルがある場合は、 'diff -q'を使用してください。 – nhed