curl PUT 使用 auth token header 到 mesosphere 在没有 eval 的情况下失败
curl PUT using auth token header to mesosphere fails without eval
EDIT:
我已经设法让它与
一起工作
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
)
单引号导致了问题。转了几圈,但一切都很好。
道德:如果价值被正确引用,价值中的引号并不重要,除非你评估整个事情,我应该知道这一点。奥卡姆又赢了。
end edit
我正在使用 curl
启动 Mesosphere 微服务部署,但如果不使用 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,它会循环 curl
以有效 screen-scrape 部署页面,直到请求消失。
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 )
前两个return401,认证失败。
我猜身份验证令牌引用已关闭。
这里没有理由使用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"
)
EDIT:
我已经设法让它与
一起工作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
)
单引号导致了问题。转了几圈,但一切都很好。
道德:如果价值被正确引用,价值中的引号并不重要,除非你评估整个事情,我应该知道这一点。奥卡姆又赢了。
end edit
我正在使用 curl
启动 Mesosphere 微服务部署,但如果不使用 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,它会循环 curl
以有效 screen-scrape 部署页面,直到请求消失。
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 )
前两个return401,认证失败。 我猜身份验证令牌引用已关闭。
这里没有理由使用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"
)