因此,我有一个curl
通过管道连接到 agrep
和 a 的sed
。我应该在哪里应用>/dev/null 2>&1
?
curl www.site.com | grep stuff | sed "other stuff"
在最后还是卷曲之后?
答案1
请具体说明该命令的用途。我猜你想使用
curl -s www.site.com
以防止进度指示和其他内容。-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"
答案2
刚才解释得更详细一些:>/dev/null
将 SDTOUT(标准输出)重定向到“黑洞”,并将2>&1
STDERR(标准错误输出)附加到 STDOUT,这样它也会进入 Nirvana。这样就什么都没有显示:正常输出和错误都消失了。所以你可能可能想要
curl -s www.site.com 2>/dev/null | grep stuff | sed "other stuff"
即不重定向 STDOUT,仅抑制 STDERR 并告诉 curl 仅显示缩进的内容,然后将其通过管道传输到 grep 并最终传输到 sed。
注意不是在“2>”之间引入空格,或者 2 将被解释为 curl 的附加参数;)
答案3
我最近遇到了类似的事情,需要计算加载特定页面所需的时间。我只是将/dev/null
其用作输出文件,这样我就可以获得所有不错的统计数据,而无需打印任何 HTML。
curl www.google.com -o /dev/null
对于我自己,我还将其包装在time
命令中以获取额外的数据
time (curl www.google.com -o /dev/null)
答案4
curl -sw '%{http_code}' www.example.com | tail -n 1
我更喜欢这样,因为页面有时会返回文本,例如在卷曲 MongoDB 驱动程序端口时。