我正在尝试编写下载 node.js source 的脚本和 corresponding SHASUMS256.txt ,校验和,grep OK,不返回任何结果,使用 grep 的 -q 标志成功退出代码 0:
wget http://nodejs.org/dist/latest/node-v0.10.26.tar.gz
wget http://nodejs.org/dist/latest/SHASUMS256.txt
sha256sum -c SHASUMS256.txt|grep -q OK
但是,grep 返回了不匹配行的选择“没有这样的文件或目录”错误(尽管不是全部,令人困惑):
> sha256sum -c SHASUMS256.txt|grep -q OK
sha256sum: node-v0.10.26-darwin-x64.tar.gz: No such file or directory
sha256sum: node-v0.10.26-darwin-x86.tar.gz: No such file or directory
sha256sum: node-v0.10.26-linux-x64.tar.gz: No such file or directory
sha256sum: node-v0.10.26-linux-x86.tar.gz: No such file or directory
sha256sum: node-v0.10.26-sunos-x64.tar.gz: No such file or directory
sha256sum: node-v0.10.26-sunos-x86.tar.gz: No such file or directory
sha256sum: node-v0.10.26-x86.msi: No such file or directory
sha256sum: node-v0.10.26.pkg: No such file or directory
sha256sum: node.exe: No such file or directory
知道这里的问题是什么吗?如果校验和成功(例如 grep 匹配 OK),我想要从这个脚本中返回代码 0,如果失败则返回非 0 代码。
最佳答案
当您通过管道将一个命令的输出作为其他命令的输入时,只有第一个命令的 stdout
作为 stdin
传递给第二个命令。
您看到的行是由 sha256sum
程序发送到 stderr
。
您可以通过将 sha256sum
命令的 stderr
也发送到 grep
来验证
sha256sum -c SHASUMS256.txt 2>&1 |grep -q OK
希望对您有所帮助。
https://stackoverflow.com/questions/23228209/
相关文章:
ember.js - 在 Github Pages 上的 Ember.js 中获取没有哈希的 url
ocaml - 是否可以在 OCaml 中直接将 "type"作为字符串打印出来?
installation - NSIS:MUI_PAGE_INSTFILES 完成后如何自动按下 "
ckeditor - 如何从内联 CKEditor 的可编辑区域中删除边框?
cordova - 在 Windows Phone 8 中调用日期时间选择器插件
sql - MSSQL : Display Rows for a Select with Case
amazon-web-services - boto如何选择aws区域来创建buckets?