如何将 xargs 的多个查询参数传递到 httpie 中?



我在下面尝试将参数传递给httpie,它意外地变成了POST方法。

1)
$ echo "a1 b1" | xargs -t -n2 bash -c 'http -v https://httpbin.org/anything arg1==$0 arg2==$1'
bash -c http -v https://httpbin.org/anything arg1==$0 arg2==$1 a1 b1 
2)
$ echo "arg1==a1 arg2==b1" | xargs -t -n2 bash -c 'http -v https://httpbin.org/anything'
bash -c http -v https://httpbin.org/anything arg1==a1 arg2==b1

第一个返回下面,似乎还有其他"a1 b1"抑制了正确的请求。

bash -c http -v https://httpbin.org/anything arg1==$0 arg2==$1 a1 b1

第二个返回似乎不太远,但实际方法变成了 POST。

有没有办法将多个参数传递给 httpie?

以下是实现目标的方法:

echo "a1 b1" |
awk '{print "http -v https://httpbin.org/anything arg1=="$1" arg2=="$2}' |
bash

即使手动插入字符串,如下所示:

$ echo 'http -v https://httpbin.org/anything arg1==a1 arg2==b2' | bash

工作原理不如下:

$ http -v https://httpbin.org/anything arg1==a1 arg2==b2

我不明白发生这种情况的原因,但只要我指定方法,它就起作用了。

$ echo "a1 b1" | xargs -t -n2 bash -c 'http -v GET https://httpbin.org/anything arg1==$0 arg2==$1
^^^

我想我得到了它的原因,这是由于 stdin,所以可以通过 --ignore-stdin 选项来避免它。

相关内容

  • 没有找到相关文章

最新更新