Bash 如何通过xargs将多个查询参数传递到httpie?
我在下面尝试将一个参数传递给httpie,结果它意外地变成了POST方法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
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
^^^