跳转到内容

执行Shell

执行Shell 用于在 Linux 环境下执行指定的 Shell 命令或脚本,支持 Bash、sh、zsh 等常见 Shell 语法。它常用于自动化运维、批量处理、环境初始化等流程,执行完成后返回标准输出和退出码,便于后续节点判断与处理。

指令标识:ShellExecuteTask
指令类型:系统操作指令
指令描述:执行指定的 Shell 脚本或命令

工作流支持「可视化编排」和「代码编排」两种创建方式。执行Shell 的核心是「脚本内容」与「执行环境」,两种方式配置一致,区别在于你是通过界面表单填写,还是通过节点动态编排。

方式怎么用适合人群
可视化编排(推荐先学)拖入「执行Shell」节点,在右侧表单填写脚本内容并选择是否使用沙箱模式大多数用户,零代码,适合快速搭建和调试
代码编排(执行指令 XML)通过 执行指令 节点动态传入脚本参数调用需要动态生成脚本或批量复用流程的用户

第一次使用建议先用可视化编排跑通,再考虑通过节点动态编排。下方「参数说明」同时给出界面字段和代码属性名,方便两种方式对应。

  • 流程中需要执行一段 Shell 命令或脚本(如查询系统信息、清理文件、调用命令行工具)。
  • 自动化运维:批量执行系统管理、日志清理、监控采集等脚本。
  • 环境初始化:自动安装依赖、配置环境、初始化目录结构。
  • 在构建、测试、部署等流程中自动执行 Shell 脚本。
  • 当前执行环境是 Linux,且具备执行目标命令所需的系统权限。
  • 已明确脚本要在「本地环境」还是「沙箱环境」执行(对应「沙箱模式」开关)。
  • 脚本中引用的命令、文件路径在执行环境中真实存在。
  • 如需在后续节点使用执行结果,规划好「将结果保存至」的输出变量名。
执行Shell

下面用一个常见场景演示:查询执行环境的网络配置,供后续节点解析使用。按 4 步即可跑起来:

  1. 在工作流画布中添加 执行Shell 指令。
  2. 在右侧配置面板的 脚本 中填写要执行的命令,例如:
ifconfig
  1. 根据需要设置 沙箱模式:关闭表示在本地环境执行,开启表示通过工作流在沙箱中执行。
  2. 将结果保存至 填写一个变量名(如 shellResult),运行后即可在后续节点引用执行结果。

运行后输出结果示例(保存在输出变量中的 JSON 对象):

{
"exitCode": "0",
"out": "eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 10.0.0.10 netmask 255.255.255.0\n..."
}
界面名称代码属性名类型必填默认值说明
脚本scriptString-需要执行的 Shell 命令或脚本内容。
沙箱模式sandboxBooleanfalse是否在沙箱环境中执行:true 表示通过工作流在沙箱中执行;false 或不填表示在本地环境执行。
界面名称代码属性名类型必填说明
将结果保存至outKeyJSON命令执行结果,JSON 对象,包含标准输出 out 与退出码 exitCode
  • 节点运行状态为成功,未出现报错中止。
  • 输出变量中的 exitCode0,表示命令正常退出。
  • out 字段包含预期的标准输出内容。
  • 后续节点能正确引用并解析输出结果。

本节点的默认失败处理策略为 报错中止(执行失败会中断工作流)。

现象 / 报错原文可能原因处理建议
脚本未执行或报参数缺失「脚本」为空检查「脚本」是否填写;代码编排确认 script 已传入
退出码 exitCode0命令本身执行失败(语法错误、命令不存在)在执行环境中手动验证命令,确认命令与路径正确
提示权限不足执行用户缺少相应系统权限确认执行脚本的用户具备足够权限,或调整命令
本地与沙箱行为不一致两种环境的依赖、路径不同确认「沙箱模式」开关与预期一致,并核对环境差异

该节点主要通过可视化编排使用。如需在流程中动态编排,可使用 执行指令(XML)节点传入参数调用,无需手写 Python 方法。

执行Shell 节点更适合在可视化画布中直接配置脚本内容与沙箱模式。若你希望在流程里动态拼接脚本、批量复用,可以通过 执行指令 节点,按「脚本(script)/ 沙箱模式(sandbox)/ 输出变量(outKey)」的对应关系传参调用。

Q1:执行 Shell 命令需要什么权限?

Section titled “Q1:执行 Shell 命令需要什么权限?”

A: 需确保执行脚本的用户具有足够的系统权限,否则可能因权限不足导致执行失败。

Q2:本地执行和沙箱执行有什么区别?

Section titled “Q2:本地执行和沙箱执行有什么区别?”

A: 沙箱模式关闭(或不填)时在本地环境执行;开启时通过工作流在沙箱环境中执行,适合需要隔离的场景。

A: 执行结果统一保存在「将结果保存至」(outKey)对应的 JSON 对象中,标准输出在 out 字段、退出码在 exitCode 字段,可用于后续流程判断和异常处理。