Node-RED使用指南:26:使用exec执行系统命令

在这里插入图片描述
这篇文章继续介绍常用的exec节点在Node-RED中的使用方式。

事前准备

以容器方式启动Node-RED服务,启动命令如下所示:

启动命令:docker run -it -p 1880:1880 -v $PWD/data:/data -e TZ=Asia/Shanghai --name nodered -d nodered/node-red:1.0.4

exec节点使用介绍

exec缺省是function类别的一个节点,基本信息如下图所示,有一个输入和三个输出,接下来将结合示例进行使用说明。
在这里插入图片描述

使用示例1: 传递参数

使用inject、exec和debug节点组成如下flow:
在这里插入图片描述
exec节点的设定如下所示:仅在Command处设定echo为执行命令,注意Append复选框在此示例中缺省被选中,这样缺省设定下的Inject的timestamp会作为echo命令的参数传入:
在这里插入图片描述

执行结果如下所示:
在这里插入图片描述
结果说明:选中Append的复选框,时间信息作为参数传给echo,然后通过stdout标准输出进行了显示。

使用示例2: 不传递参数

修改Inject,进行如下设定,也可以不做修改仅仅取消后续exec节点的复选框:
在这里插入图片描述
去掉Append的复选框,在执行命令中使用uname -a来确认结果
在这里插入图片描述
flow如下所示
在这里插入图片描述
执行结果如下所示:
在这里插入图片描述

注意事项:命令执行是通过Node.js在Node-RED所在操作系统上执行本地命令,以本文Docker方式启动的Node-RED服务为例,实际上是在启动的nodered容器中执行次命令, 使用如下方式即可确认到uname命令的结果:

liumiaocn:~ liumiao$ docker exec nodered uname -a
Linux e14347474b69 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 Linux
liumiaocn:~ liumiao$ 

JSON格式的flow如下所示

[{"id":"261d1556.3315fa","type":"exec","z":"69f65762.fb3bd8","command":"uname -a","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":380,"y":140,"wires":[["5445c0ae.bb25f"],["5445c0ae.bb25f"],["5445c0ae.bb25f"]]}]

使用示例3: 使用多条语句和管道

在命令行中可以使用多条语句和管道符号, 比如使用如下设定示例
在这里插入图片描述
执行结果如下所示
在这里插入图片描述

发布了1143 篇原创文章 · 获赞 1364 · 访问量 415万+

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/105003171