代码下方的问题。
#!/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 值。它保持一个循环,直到值不同(这意味着文件夹上发生了某些事情),因此在 10 秒后 md5 计算哈希值应该不同,然后代码结束。
两个问题。
- 请注意,那里有一个评论。如果您取消注释 while 并注释 for,您会注意到代码停止工作。为什么?我尝试了不同的组合以使其发挥作用。我用引号括起来,使用了 -eq、=、== 等。没有任何效果。我怎样才能让它与一个整体一起工作?
- 现在的代码方式,如果它运行,那么我得到的输出是:
((:d41d8cd98f00b204e9800998ecf8427e == 97329acaae00bdf66e30ac53b49e1036:值对于基数太大(错误标记为“97329acaae00bdf66e30ac53b49e1036”)
Thus, how can I fix this is the second question and why this is happening.
谢谢!