我正在尝试从shell脚本中形成一个参数化调用来卷曲
header_string="--header \"X-param1: 1\" --header \"X-param2: 2\""
url="http://example.com"
command="curl $header_string $url"
a=`${command}`
这不起作用,因为它被解释为
curl --header '"X-param1:' '1"' --header '"X-param2:' '2"' http://example.com
如何正确引用?
答案 0 :(得分:2)
如果你正在使用BASH,你可以充分利用BASH数组:
header_string=(--header "X-param1: 1" --header "X-param2: 2")
url="http://example.com"
command="$(curl -s "${header_string[@]}" "$url")"
但如果您使用旧版sh
,则使用可怕的eval
:
header_string="--header \"X-param1: 1\" --header \"X-param2: 2\""
url="http://example.com"
command=`eval "curl $header_string $url"`