使用命令行工具

时间:2016-08-22 16:28:42

标签: json parsing unix command-line

我的服务器上有JSON文件,需要传递给运行Debian的几个不同的Raspberry Pis。每个Pis都有自己的JSON提要,它们将从中提取,但实际上,我需要自动获取一个键值对的值,并将其用作终端中运行的命令的参数。

例如:获取https://www.example.com/api/THDCRUG2899CGF8&/manifest.json

{
   "version": "1.5.6",
   "update_at": "201609010000",
   "body": "172.16.1.1"
}

然后,该值将动态输出到使用body的值作为参数的命令中。 EG:ping [body value]

编辑:

这样做的目的是让每分钟执行一次任务以接收天气更新。

1 个答案:

答案 0 :(得分:1)

您正在寻找命令替代,特别是包含可以从JSON值中提取值的命令。首先,您可以使用jq作为JSON处理命令。

$ jq -r '.body' tmp.json
172.16.1.1

命令替换允许您捕获jq的输出以用作参数:

$ ping "$(jq -r '.body' tmp.json)"
PING 172.16.1.1 (172.16.1.1): 56 data bytes
...
相关问题