加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用bash变量将多个标头传递给curl命令

发布时间:2020-12-15 22:11:19 所属栏目:安全 来源:网络整理
导读:参见英文答案 Prevent bash from adding single quotes to variable output????????????????????????????????????1个 我想用多个头文件做curl请求.解决方法是创建这个命令: curl -H "keyheader: value" -H "2ndkeyheader: 2ndvalue" ... 我的目标是只使用一
参见英文答案 > Prevent bash from adding single quotes to variable output????????????????????????????????????1个
我想用多个头文件做curl请求.解决方法是创建这个命令:

curl -H "keyheader: value" -H "2ndkeyheader: 2ndvalue" ...

我的目标是只使用一个变量和所有标题,如:

headers='-H "keyheader: value" -H "2ndkeyheader: 2ndvalue" '
curl $headers

发送

curl -H "keyheader: value" -H "2ndkeyheader: 2ndvalue"

目前,问题是:我可以使用’或’来声明我的字符串,但是bash尝试在“-H”之后运行什么作为参数,然后回答:

command unknown

想知道这里出了什么问题.

解决方法

您只需要使用数组而不是变量来传递引用的字符串.

declare -a curlArgs=('-H' "keyheader: value" '-H' "2ndkeyheader: 2ndvalue")

现在以这种方式完全传递这个数组,数组扩展(带双引号)处理双引号内的参数,以便在传递时不进行分割.

curl "${curlArgs[@]}"

要更深入地了解为什么将变量中的参数设置失败,请参阅BashFAQ/050 – I’m trying to put a command in a variable,but the complex cases always fail!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读