我有这段代码,reload
如果当前文件($1
)更改,应该调用该代码:
thehash="`cksum $1`"
while true
do
curhash="`cksum $1`"
if "$curhash" -ne "$thehash"; then
reload
fi
...
done
tl; dr:它不起作用。
由于我对bash不太了解,因此我无法弄清楚我做错了什么。我收到此错误:
58003725 834183 main.pdf: command not found
显然,bash试图执行curhash
?我该如何解决?
您需要在条件中if
使用方括号或使用该test
命令,因此应使用
if [[ "$curhash" != "$thehash" ]]; then
并注意-ne
是用于整数比较,!=
用于字符串比较
如果没有展开[[
或test
变量,则该变量将变为要运行的命令,这就是为什么它试图执行以下命令的输出的原因cksum
:的内容curhash
被视为命令。
另外,正如@Sundeep所提到的,从子shell获取输出的更常见的首选方法是使用$(...)
而不是反引号。这是一个很好的答案
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句