编辑:
我已经设法让它与
response=$(
curl -k -X PUT -d "$marathon_payload" --write-out %{http_code} --silent --output "$tmp"\
-H "Authorization: token=$dcos_token" -H "$header_content_type" $app_id_url
)
单引号导致了问题。转了几圈,但一切都很好。
道德:价值内的引号是否正确引用并不重要,除非您评估整个事情,我应该知道这一点。奥卡姆再次获胜。
结束编辑
我正在使用 启动 Mesosphere 微服务部署curl
,但如果不使用eval
. 自从我最近继承了这段代码以来,我一直试图将其eval
删除,这只是习惯问题,但它阻碍了我。
该脚本使用以下命令启动部署
response=$(
eval curl -k -X PUT -d "'$marathon_payload'" --write-out %{http_code} --silent --output $tmp\
-H "'Authorization: token=$dcos_token'" -H "'$header_content_type'" $app_id_url
)
如果它得到 200 或 201,它会循环 acurl
以有效地屏幕抓取部署页面,直到请求消失。
chkDeploy() { rm -f $tmp;
eval curl -k -X GET --silent --write-out %{http_code} --silent --output $tmp\
-H "'Authorization: token=$dcos_token'" -H "'$header_content_type'" $deployments_url
}
response=$( chkDeploy )
$dcos_token
是一个 base64 编码的字符串。
然后它通过另一个curl
循环检查服务到信息页面,以便它可以验证版本号。这个工作正常,没有评估。
chkCode() {
curl -k -X GET --write-out %{http_code} --silent --output $tmp $info_url;
}
response=$( chkCode )
前两个返回401,认证失败。我猜 auth 令牌引用已关闭。
没有理由在eval
这里使用;您只需要-H
正确引用参数即可。
response=$(
curl -k -X PUT -d "$marathon_payload" \
--write-out %{http_code} \
--silent --output "$tmp" \
-H "Authorization: token=$dcos_token" \
-H "$header_content_type" "$app_id_url"
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句