コードの下の質問。
#!/bin/sh
check() {
dir="$1"
chsum1=`find ~/folder -type f -exec cat {} \; | md5`
chsum2=$chsum1
for (( ; 0x$chsum1 == 0x$chsum2; ))
do
echo "hello"
sleep 10
chsum2=`find ~/folder -type f -exec cat {} \; | md5`
done
echo "hello"
#eval $2
}
check $*
目標は: コードを機能させることです。それは何をしますか?md5 をフォルダーに適用し、md5 値を比較します。値が異なるまでループを維持します (つまり、フォルダーで何かが発生したことを意味します)。したがって、md5 がハッシュを計算する 10 秒後に異なるはずであり、コードは終了します。
2 つの質問。
- そこにコメントがあることに注意してください。while のコメントを外し、for のコメントを外すと、コードが機能しなくなることがわかります。なんで?それを機能させるために、さまざまな組み合わせを試しました。引用符で囲み、-eq、=、== などを使用しました。どれも機能しませんでした。どうすればそれを全体で機能させることができますか?
- 現在のコードの方法は、実行された場合、出力として得られるものは次のとおりです。
((: d41d8cd98f00b204e9800998ecf8427e == 97329acaae00bdf66e30ac53b49e1036: ベースに対して値が大きすぎます (エラートークンは「97329acaae00bdf66e30ac53b49e1036」です)
Thus, how can I fix this is the second question and why this is happening.
ありがとうございました!