[英]What output is used in bash (with HTTPie)?
我正在尝试分析此命令:
$ http :"/hello"
HTTP/1.1 401 Unauthorized
<headers>
<body>
我试图将整个内容保存在变量VAR=$(... )
中,但到目前为止无济于事。
如果我跑
$ http :"/hello" 1>/dev/null
一切都消失了,所以我得出一切都是标准的 output。
但是,如果我尝试将其发送到文件或我的变量,我看不到初始部分。 所以我认为这是stderr
,所以我做了2>&1
但这也没有任何效果。
我怎么能理解这个?
谢谢
HTTPie 会更改其 output,具体取决于它是写入终端还是常规文件。
从手册
重定向 output
HTTPie 对重定向的 output 使用一组与终端 output 不同的默认值。 区别在于:
不应用格式化和 colors(除非指定
--pretty
)。 仅打印响应正文(除非设置了 output 选项之一)。 此外,不会抑制二进制数据。[...]
您可以使用特定的命令行选项来覆盖默认值。
您可以尝试使用选项“-v”和“-o”来捕获文件中的标题和正文,如:
http -v -o output.file "google.com/bla"
正如@chepner 在评论中提到的那样,一些工具检测标准输出是否是文件并更改它们 output 的内容。
编辑:为了你想要的最简单的工作(到标准输出),你可以使用:
http -v -o /dev/stdout "google.com/bla"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.