我想curl用多个标题发出请求.解决方案是创建此命令:
curl -H "keyheader: value" -H "2ndkeyheader: 2ndvalue" ...
Run Code Online (Sandbox Code Playgroud)
我的目标是只使用一个变量和所有标题,如:
headers='-H "keyheader: value" -H "2ndkeyheader: 2ndvalue" '
curl $headers
Run Code Online (Sandbox Code Playgroud)
发送
curl -H "keyheader: value" -H "2ndkeyheader: 2ndvalue"
Run Code Online (Sandbox Code Playgroud)
目前,问题是:我可以使用'或"声明我的字符串,但bash尝试运行之后"-H"作为参数然后回答:
command unknown
Run Code Online (Sandbox Code Playgroud)
想知道这里出了什么问题.
Ini*_*ian 14
您只需要使用数组而不是变量来传递引用的字符串.
declare -a curlArgs=('-H' "keyheader: value" '-H' "2ndkeyheader: 2ndvalue")
Run Code Online (Sandbox Code Playgroud)
现在以这种方式完全传递这个数组,数组扩展(带双引号)处理双引号内的参数,以便在传递时不进行分割.
curl "${curlArgs[@]}"
Run Code Online (Sandbox Code Playgroud)
为了更深入地了解为什么将变量中的参数设置失败,请参阅BashFAQ/050 - 我正在尝试将命令放在变量中,但复杂的情况总是会失败!
| 归档时间: |
|
| 查看次数: |
9586 次 |
| 最近记录: |