我有以下代码:
curl -s --insecure -H "Content-Type: application/json" -X POST -d "{\"username\":\"$1\",\"password\":\"$2\"}" http://apiurl
在上面的 curl
命令中,我想转义密码中的 "
和 !
。现在密码只是作为 $2
我已经如下修改了 curl 命令,但它似乎不起作用
curl -s --insecure -H "Content-Type: application/json" -X POST -d "{\"username\":\"$1\",\"password\":\"$2\"}" http://apiurl
最佳答案
不要尝试手动生成 JSON;使用像 jq
这样的程序,它知道如何正确地转义,为你生成它。
json=$(jq -n --arg u "$1" --arg p "$2" '{username: $u, password: $p}')
curl -s --insecure -H "Content-Type: application/json" -X POST -d "$json" http://apiurl
关于linux - 如何转义密码中的双引号和感叹号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954701/