外壳脚本中字符串内的参数



我正在尝试使用如下所示的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",那么它根本不起作用。

有谁知道如何解决这个问题?

你想使用双引号(让变量正确扩展(,但在字符串中的 qoutes 前面用反斜杠转(当你使用 -d 时去掉-X POST,因为(:

#!/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