Bash 如何通过xargs将多个查询参数传递到httpie?

Bash 如何通过xargs将多个查询参数传递到httpie?,bash,xargs,httpie,Bash,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 第一个返回到下面,似乎有额外的“a1 b1”阻止正确的请求 bash-c http-v

我在下面尝试将一个参数传递给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 
第一个返回到下面,似乎有额外的“a1 b1”阻止正确的请求

bash-c http-v arg1==$0 arg2==$1 a1 b1

第二个返回似乎不太远,但实际的方法变成了帖子


有没有办法将多个参数传递给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引起的,所以可以通过忽略stdin选项来避免

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