使用 >/dev/null 2>&1 在管道传输时静音卷曲

tzi*_*ppy 3 curl pipe

所以我有一个curl通过管道连接到 agrep和 a 的sed。我会在哪里申请>/dev/null 2>&1

curl www.site.com | grep stuff | sed "other stuff"
Run Code Online (Sandbox Code Playgroud)

在最后还是在卷曲之后?

mnm*_*mnc 7

请更具体地说明命令的目的是什么。我猜你想用

curl -s www.site.com
Run Code Online (Sandbox Code Playgroud)

以防止进度指示和其他东西。-s 将执行相同的操作,但默默地

如果您绝对必须使用 >/dev/null 2>&1 我想我会将 curl 输出重定向到文件

curl www.site.com -o file.txt >/dev/null 2>&1
cat file.txt | grep stuff | sed "other stuff"   
Run Code Online (Sandbox Code Playgroud)


Izz*_*zzy 5

刚刚解释得更近一点:>/dev/null将 SDTOUT(标准输出)重定向到“黑洞”,2>&1并将 STDERR(标准错误输出)附加到 STDOUT,因此它也进入 Nirvana。这没有什么可显示的:正常输出和错误都消失了。所以,你可能什么想可能是

curl -s www.site.com 2>/dev/null | grep stuff | sed "other stuff"
Run Code Online (Sandbox Code Playgroud)

即不重定向 STDOUT,只是抑制 STDERR 并告诉 curl 只显示指定的内容,然后将其传送到 grep,最后传送到 sed。

注意不要在“2>”之间引入空格,否则 2 宁愿被解释为 curl 的附加参数;)