如何转义密码中的双引号和感叹号?

如何转义密码中的双引号和感叹号?

我有以下代码:

curl -s --insecure -H "Content-Type: application/json" -X POST -d "{\"username\":\"$1\",\"password\":\"$2\"}" http://apiurl

在上面的curl命令中,我想转义密码中的"和。!

我已经修改了 curl 命令如下,但它似乎不起作用

curl -s --insecure -H "Content-Type: application/json" -X POST -d "{\"username\":\"$1\",\"password\":\"$2\"}" http://apiurl

答案1

${password//!/\!} 将用 ! 替换密码中的每个 !。额外的 \ 表示我们要替换每个 !,而不仅仅是第一个。

相同的逻辑可以用于“或者,您可以将完整的 -d 变量括在单引号而不是双引号中,这可能会消除转义双引号的需要。

相关内容