【问题标题】:Arguments inside string in shell scriptshell脚本中字符串内的参数
【发布时间】:2018-04-29 10:41:48
【问题描述】:

我正在尝试使用如下所示的 shell 脚本:

#!/bin/bash
echo "First arg: $1"
echo "Second arg: $2"
curl -w "\n" -d '{"ssid": "$1", "psk": "$2" }' \
 -H "Content-Type: application/json" \
 -X POST localhost:8080/connect

问题是在 curl 命令内部,它需要 $1 和 $2 作为字符串而不是参数。如果我尝试删除 ":s 那么它根本不起作用。

有人知道怎么解决吗?

【问题讨论】:

    标签: string shell curl arguments


    【解决方案1】:

    您想使用双引号(以正确扩展变量),但 转义 字符串中的 qoutes,并在它们前面加上反斜杠(并在使用 -d 时删除 -X POST,@ 987654321@):

    #!/bin/bash
    echo "First arg: $1"
    echo "Second arg: $2"
    curl -w "\n" -d "{\"ssid\": \"$1\", \"psk\": \"$2\" }" \
     -H "Content-Type: application/json" localhost:8080/connect
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 2014-11-24
      • 1970-01-01
      • 2011-06-18
      • 2020-10-16
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多