gpt4 book ai didi

linux - 在shell脚本linux中将变量作为选项传递给curl

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:15 26 4
gpt4 key购买 nike

我正在尝试通过脚本使用curl 更新网站的一些信息,但效果不佳,这是我的代码:

CURL_STD_OPTS="-k --header 'Content-Type: application/json' --header 'Accept: application/json'
curl "$CURL_STD_OPTS" -X POST --data '{ "actual": '"$BAL"' }' "'$websiteurl'"

这是输出消息:

jdelaoss@infcet99:/tools/saadmin/occtools_morning_checks $ ./test.sh
curl: option -k --header 'Content-Type: application/json' --header 'Accept: application/json': is unknown

如果我直接从 shell 运行脚本并使用它有效的选项。

最佳答案

您需要使用数组,而不是常规变量。

curl_std_opts=( -k --header 'Content-Type: application/json' --header 'Accept: application/json')
curl "${curl_std_opts[@]}" -X POST --data "{\"actual\": $BAL}" "$websiteurl"

为了安全起见,您应该使用像 jq 这样的工具来生成 JSON,而不是依赖参数插值来生成有效的 JSON。

curl "${curl_std_opts[@]}" -X POST --data "(jq --argjson b "$BAL" '{actual: $b}') "$websiteurl"

关于linux - 在shell脚本linux中将变量作为选项传递给curl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52668550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com