如何在shell脚本中删除变量的双引号

时间:2021-06-20 02:35:04

标签: bash shell

API 身份验证被拒绝,因为我在 curl 命令中传递的 $login_token 变量的值在执行期间用双引号括起来。

代码

set -x
login_token="eUsadjb@dsi-0nknhsnc"
API_Response=$(curl -X POST --header 'Accept: application/json' --header 'Authorization: Bearer '$login_token 'https://example.com')
set +x

调试模式下的卷曲响应

++ curl -X POST --header 'Content-Type: multipart/form-data' --header 'Accept: application/json' --header 'Authorization: Bearer "eUsadjb@dsi-0nknhsnc"'
+API_Response='Authorization has been denied for this request. Please use a valid access token.'

正如您所注意到的,当作为变量传递时,login_token 值嵌入了双引号,这会导致失败。 login_token 变量的值应该按原样不带引号传递。假设,如果我在 curl 命令中直接传递 login_token 的值,那么认证成功。

直接价值 - 身份验证成功

API_Response=$(curl -X POST --header 'Accept: application/json' --header 'Authorization: Bearer eUsadjb@dsi-0nknhsnc' 'https://example.com')

如何在 curl 命令中不带引号传递 login_token 变量的值?

仅供参考,我也尝试了以下方法,但不起作用

login_token="eUsadjb@dsi-0nknhsnc"
API_Response=$(curl -X POST --header "Accept: application/json" --header "Authorization: Bearer $login_token" "https://example.com")

0 个答案:

没有答案