用户.我想使用bash脚本运行curl命令. (以下命令在终端中可以正常运行)
    curl -i -H “Content-Type: application/json” -X POST -d ‘{“mountpoint”:”/gua-la-autentica-1426251559”}’ http://127.0.0.1:5000/connect
    但是无法在bash中运行此命令.当在变量($ final)中指定安装点值时.

    1. final="/gua-la-autentica-1426251559" curl -i -H "Content-Type: application/json" -X POST -d '{"mountpoint":'$final'}' http://127.0.0.1:5000/connect

    但是无法在bash中运行此命令.当在变量($ final)中指定安装点值时.
    解决方案
    JSON字符串值应加引号,参数扩展也应加引号.您可以通过在整个JSON字符串周围使用双引号并转义内部双引号来实现此目的,例如:

    1. curl -i -H "Content-Type: application/json" -X POST -d "{\"mountpoint\":\"$final\"}" http://127.0.0.1:5000/connect

    如评论中所述,一种更可靠的方法是使用诸如jq之类的工具来生成JSON:

    1. json=$(jq -n --arg final "$final" '{ mountpoint: $final }') curl -i -H "Content-Type: application/json" -X POST -d "$json" http://127.0.0.1:5000/connect

    本文相关连接
    https://www.it1352.com/1506699.html