执行Shell
执行Shell 用于在 Linux 环境下执行指定的 Shell 命令或脚本,支持 Bash、sh、zsh 等常见 Shell 语法。它常用于自动化运维、批量处理、环境初始化等流程,执行完成后返回标准输出和退出码,便于后续节点判断与处理。
指令标识:ShellExecuteTask
指令类型:系统操作指令
指令描述:执行指定的 Shell 脚本或命令
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。执行Shell 的核心是「脚本内容」与「执行环境」,两种方式配置一致,区别在于你是通过界面表单填写,还是通过节点动态编排。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「执行Shell」节点,在右侧表单填写脚本内容并选择是否使用沙箱模式 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(执行指令 XML) | 通过 执行指令 节点动态传入脚本参数调用 | 需要动态生成脚本或批量复用流程的用户 |
第一次使用建议先用可视化编排跑通,再考虑通过节点动态编排。下方「参数说明」同时给出界面字段和代码属性名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 流程中需要执行一段 Shell 命令或脚本(如查询系统信息、清理文件、调用命令行工具)。
- 自动化运维:批量执行系统管理、日志清理、监控采集等脚本。
- 环境初始化:自动安装依赖、配置环境、初始化目录结构。
- 在构建、测试、部署等流程中自动执行 Shell 脚本。
- 当前执行环境是 Linux,且具备执行目标命令所需的系统权限。
- 已明确脚本要在「本地环境」还是「沙箱环境」执行(对应「沙箱模式」开关)。
- 脚本中引用的命令、文件路径在执行环境中真实存在。
- 如需在后续节点使用执行结果,规划好「将结果保存至」的输出变量名。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:查询执行环境的网络配置,供后续节点解析使用。按 4 步即可跑起来:
- 在工作流画布中添加 执行Shell 指令。
- 在右侧配置面板的 脚本 中填写要执行的命令,例如:
ifconfig- 根据需要设置 沙箱模式:关闭表示在本地环境执行,开启表示通过工作流在沙箱中执行。
- 在 将结果保存至 填写一个变量名(如
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..."}| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 脚本 | script | String | 是 | - | 需要执行的 Shell 命令或脚本内容。 |
| 沙箱模式 | sandbox | Boolean | 是 | false | 是否在沙箱环境中执行:true 表示通过工作流在沙箱中执行;false 或不填表示在本地环境执行。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | JSON | 否 | 命令执行结果,JSON 对象,包含标准输出 out 与退出码 exitCode。 |
- 节点运行状态为成功,未出现报错中止。
- 输出变量中的
exitCode为0,表示命令正常退出。 out字段包含预期的标准输出内容。- 后续节点能正确引用并解析输出结果。
本节点的默认失败处理策略为 报错中止(执行失败会中断工作流)。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
| 脚本未执行或报参数缺失 | 「脚本」为空 | 检查「脚本」是否填写;代码编排确认 script 已传入 |
退出码 exitCode 非 0 | 命令本身执行失败(语法错误、命令不存在) | 在执行环境中手动验证命令,确认命令与路径正确 |
| 提示权限不足 | 执行用户缺少相应系统权限 | 确认执行脚本的用户具备足够权限,或调整命令 |
| 本地与沙箱行为不一致 | 两种环境的依赖、路径不同 | 确认「沙箱模式」开关与预期一致,并核对环境差异 |
Python 代码编排
Section titled “Python 代码编排”该节点主要通过可视化编排使用。如需在流程中动态编排,可使用 执行指令(XML)节点传入参数调用,无需手写 Python 方法。
执行Shell 节点更适合在可视化画布中直接配置脚本内容与沙箱模式。若你希望在流程里动态拼接脚本、批量复用,可以通过 执行指令 节点,按「脚本(script)/ 沙箱模式(sandbox)/ 输出变量(outKey)」的对应关系传参调用。
Q1:执行 Shell 命令需要什么权限?
Section titled “Q1:执行 Shell 命令需要什么权限?”A: 需确保执行脚本的用户具有足够的系统权限,否则可能因权限不足导致执行失败。
Q2:本地执行和沙箱执行有什么区别?
Section titled “Q2:本地执行和沙箱执行有什么区别?”A: 沙箱模式关闭(或不填)时在本地环境执行;开启时通过工作流在沙箱环境中执行,适合需要隔离的场景。
Q3:如何获取命令执行结果?
Section titled “Q3:如何获取命令执行结果?”A: 执行结果统一保存在「将结果保存至」(outKey)对应的 JSON 对象中,标准输出在 out 字段、退出码在 exitCode 字段,可用于后续流程判断和异常处理。