gpt4 book ai didi

grep - 管道 shasum 到 grep,但 grep 返回管道输入的所有行,即使是不匹配的

转载 作者:行者123 更新时间:2023-12-01 23:56:53 28 4
gpt4 key购买 nike

我正在尝试编写下载 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

希望对您有所帮助。

关于grep - 管道 shasum 到 grep,但 grep 返回管道输入的所有行,即使是不匹配的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23228209/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com