我有一个函数get_info_using_api
,它调用一个以上的函数get_data
函数get_data
获取一些参数并执行curl命令这是的内容
function get_data() {
local http_method="${1}"
local rest_call_url="${2}"
local other_paramas="${3}"
curl -s -k "${other_paramas}" -X $http_method $rest_call_url
}
现在我的get_info_using_api
看起来像这个
function get_info_using_api {
local api_key=${1}
local other_curl_options="-H "'Content-Type:application/json'" -H "'X-user:'$api_key''""
local http_method=GET
local url=something
data=$(get_curl_data $http_method $jenkins_url "${other_curl_options}")
}
所以当我调用这个函数get_info_using_api
时,执行的curl命令是curl -s -k '-H Content-Type:application/json -H user:api_key' -X GET url
而我需要的是curl -s -k '-H Content-Type:application/json' -H 'user:api_key' -X GET url
我试图在这行中添加这些单引号,但我做不到。有人能帮我处理这个吗
将它们放在一个数组中。
function get_info_using_api {
local api_key="${1}"
local other_curl_options=(
"-H 'Content-Type:application/json'"
"-H 'X-user:$api_key'"
)
local http_method=GET
local url=something
data=$(get_curl_data $http_method $jenkins_url "${other_curl_options[@]}")
}
您可以将singles嵌入到doubles中,当您使用"${x[@]}"
语法引用数组时,它会将args作为单独的字符串返回。
你可以用这个测试逻辑:
$: x=( 1 2 3 )
$: printf "%sn" "${x[@]}"
1
2
3
每个都单独打印。