为 AWS IoT 格式化 JSON 字符串

DDB*_*DBE 3 bash amazon-web-services mqtt mosquitto aws-iot

当我尝试从变量发布温度值时,我从 AWS 控制台收到“JSON 格式错误”;这工作正常:

mosquitto_pub -t \$aws/things/my-xxxx/shadow/update -m '{"state": {"desired":
{"temperature": 1   }}}' -q 1
Run Code Online (Sandbox Code Playgroud)

我想用一个变量替换“1”,所以我创建了一个带有 mosquitto_pub 等的外壳,并且我想将一个参数传递给外壳,调用“./publish.sh Temperature_Value”,其中温度值是一个整数:

尝试此操作时,我从 AWS 控制台收到错误消息:

DATA=${1}
mosquitto_pub -t \$aws/things/my-xxxx/shadow/update -m '{"state": {"desired":
{"temperature": $DATA }}}' -q 1
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢

Mat*_*ios 5

你的逃避是错误的。这是正确的转义:

mosquitto_pub -t \$aws/things/my-xxxx/shadow/update -m "{\"state\": {\"desired\":
{\"temperature\": $1 }}}" -q 1
Run Code Online (Sandbox Code Playgroud)

请记住,单引号'内的变量不会被插入。

问候!