bash - 为 AWS IoT 格式化 JSON 字符串

标签 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

我想用一个变量替换“1”,所以我用 mosquitto_pub 等创建了一个 shell,我想向 shell 传递一个参数,调用“./publish.sh Temperature_Value”,其中温度值是一个整数:

尝试这个我从 AWS 控制台收到错误:

DATA=${1}
mosquitto_pub -t \$aws/things/my-xxxx/shadow/update -m '{"state": {"desired":
{"temperature": $DATA }}}' -q 1

我做错了什么? 谢谢

最佳答案

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

mosquitto_pub -t \$aws/things/my-xxxx/shadow/update -m "{\"state\": {\"desired\":
{\"temperature\": $1 }}}" -q 1

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

问候!

关于bash - 为 AWS IoT 格式化 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59251543/

相关文章:

python - 为什么从Python 3子进程读取实时输出需要按回车键才能输出数据?

amazon-web-services - AWS Code Deploy 禁用阻止流量并允许流量

amazon-web-services - 在 AWS 控制台中看不到手动创建的嵌套 AWS XRay 子分段

kubernetes - Mosquitto 无法在我的 Kubernetes 集群中分配请求的地址

python-3.x - 树莓派,套接字错误 "socket.gaierror: [Errno -3] Temporary failure in name resolution"

python - 为什么来自 Python 子进程的 ln 在正常命令行成功时失败?

bash - grep 查找不包括点号的变量

python - 每 10 秒发布一次 MQTT 消息...并在需要时重新连接

bash 脚本 - 检查输出中的特定字符串失败

amazon-web-services - 使用 AWS Gateway API,我可以访问 cookie 吗?