您好,感谢您的帮助。 我尝试在curl 命令中传递一对参数。 我已经知道如何传递单个变量,例如我的 MetricType、MetricName、当前时间和 $1 中的值。
我可以传递 Dim1Name 和值,如下所示:
curl --header "Content-Type: application/json"
--header "X-SF-TOKEN: ${TOKEN}" -X POST -i https://URL/datapoint
--data '{"'"${MetricType}"'": [{ "metric": "'"${MetricName}"'","value": 300,
"dimensions": {"'"${Dim1Name}"'": "'"${Dim1Value}"'"}
}]}'
我想要实现的是这样的,其中 DimOption=Dim1Name: Dim1Value 所以代码看起来像这样(但名称和值需要引号)。 是否可以 ? (如果我想发送 2+ 对参数,也可以使用逗号)
curl --header "Content-Type: application/json"
--header "X-SF-TOKEN: ${TOKEN}" -X POST -i https://URL/datapoint
--data '{"'"${MetricType}"'": [{ "metric": "'"${MetricName}"'","value": 300,
"dimensions": {"'"${DimOption}'""}
}]}'
您可以使用多行脚本来更轻松地处理正文,而不必担心引号景观:
发送.sh
data=$(cat data.json)
new_data=${data/@name/jane}
new_data=${new_data/@last_name/doe}
curl localhost:8080/foo -d "$new_data" -H "Content-Type: application/json"
echo
数据.json
{
"hello": "@name @last_name"
}
结果
解释