【问题标题】:How do I escape a variable inside double quotes inside single quotes? [duplicate]如何在单引号内转义双引号内的变量? [复制]
【发布时间】:2019-12-13 22:32:47
【问题描述】:

我正在尝试读取变量的输入,然后在 REST API 调用数据字段中使用此变量,但我无法在引号内正确转义变量。

我在单引号之前、双引号之前以及同时在单引号和双引号之前尝试过反斜杠。

token=$(curl $VAULT_ADDR/v1/auth/ldap/login/$username -d '{"password": "$password"}' -k | jq '.auth.client_token')

echo token

到目前为止,它会将 $password 读取为字符串。无法进行身份验证,因为密码错误然后令牌等于 null。我试图在双引号内使用变量 $password 的值,因为数据字段应该是 JSON 格式。

password=hunter2

'{"password": "$password"}' 变为

'{"password": "hunter2"}'

如果我硬编码我的密码,它会成功

【问题讨论】:

  • '{"password": ' "$password" ' " }'

标签: bash shell variables escaping


【解决方案1】:
'{"password": "'$password'"}'

?

【讨论】:

  • 这有一个不幸的问题,即 shell 将对未引用的值执行空白标记化和通配符扩展。除非您确切知道自己在做什么,否则请始终引用您的变量。见stackoverflow.com/questions/10067266/…
猜你喜欢
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 2013-06-17
  • 2015-11-06
相关资源
最近更新 更多