使用CURL在JSON数组中发布用户定义的变量

使用CURL在JSON数组中发布用户定义的变量,json,linux,curl,terminal,Json,Linux,Curl,Terminal,我一直在尝试使用下面的命令从我的Linux(UBUNTU)终端发布JSON数组,我正在尝试发布用户定义的N值 N=21;curl -X POST -H "Content-Type: application/json" -d '{"device_id":$N,"lattitude":2323,"longitude":443}' http://192.168.xx.xx:XXXXX/api/gps/ N=21是我定义的值,我希望传递N值作为JSON参数之一 它正在抛出一个分析错误。 是否有其他方法

我一直在尝试使用下面的命令从我的Linux(UBUNTU)终端发布JSON数组,我正在尝试发布用户定义的N值

N=21;curl -X POST -H "Content-Type: application/json" -d '{"device_id":$N,"lattitude":2323,"longitude":443}' http://192.168.xx.xx:XXXXX/api/gps/
N=21是我定义的值,我希望传递N值作为JSON参数之一 它正在抛出一个分析错误。 是否有其他方法可以传递用户定义的值。
您能建议一种实现这一点的方法吗?

通过连接相应的字符串,这似乎是一种临时解决方案

N=21; START='{"device_id":';

END=',"lattitude":2323,"longitude":443}';
curl -X POST -H "Content-Type: application/json" -d "$START$N$END" http://ipadress.com/path/to

或者,您可以将JSON拆分为变量,并在编写
curl
参数时连接它们:
N=21;START='{“device_id”:“;END=”,“latitude”:2323,“longitude”:443};curl…-d“$START$N$END“…
Dmitry Egorov!!!非常感谢!!!它起作用了。但是我们可以不连接就完成它吗?为什么不能正常工作?