我正在写一个自动下载文件的脚本。作者提供了校验和,所以我想在脚本中验证一下这些自动校验和:
if ! [[ $(sha256sum -c latest-12.tar.bz2.sha256 < latest-12.tar.bz2) = 'latest-12.tar.bz2: OK']]; then
echo "Fehler im Download"
exit 1
fi
输出:
syntax error in conditional expression: unexpected token `;'
syntax error near `;'
`if ! [[ $(sha256sum -c latest-12.tar.bz2.sha256 < latest-12.tar.bz2) = 'latest-12.tar.bz2: OK']]; then'
这是怎么回事?
最佳答案
如注释中所述,在关闭]]
之前缺少空格。
实现目标的更好方法是:
if ! sha256sum --quiet -c latest-12.tar.bz2.sha256; then
echo "Fehler im Download"
exit 1
fi
或者只是
sha256sum --quiet -c latest-12.tar.bz2.sha256 || { echo "Fehler im Download"; exit 1; }
两个命令都假定
latest-12.tar.bz2.sha256
中指示的文件路径与运行命令的位置匹配。关于linux - Shell脚本-验证sha256sum,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47176674/