shell脚本 - verfy sha256 sum

时间:2017-11-08 10:02:41

标签: linux bash shell

我正在为自动下载文件编写脚本。作者提供了校验和。所以我想在脚本中自动完成这些操作:

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'

这有什么问题?

1 个答案:

答案 0 :(得分:3)

如评论中所述,在结束]]之前缺少空格。

实现目标的更好方法是使用:

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中指示的文件路径与您运行命令的位置匹配。