如何将Pentaho Job中shell脚本的执行结果传递给作业变量
Pentaho Job 直接获取Shell脚本执行结果的方法
方法1:直接捕获Shell标准输出到作业变量(最简便)
这是无需读写文件的最优方案,操作步骤如下:
- 双击打开你的Shell脚本作业项配置面板,切换到结果标签页
- 勾选「将标准输出复制到变量」选项,在输入框中填写你自定义的变量名,例如
SHELL_EXEC_RESULT - 变量作用域选择「父作业」,确保后续所有作业步骤都能访问该变量
- 调整你的Shell脚本,将需要传递的结果直接通过
echo命令打印到标准输出即可,不要打印无关的日志内容,避免多余内容被写入变量
举个使用示例:如果你的脚本需要返回计算得到的文件路径,直接在脚本末尾加echo "/data/output/final.csv",后续步骤直接用${SHELL_EXEC_RESULT}就可以调用这个路径值。
方法2:多结果传递处理
如果需要同时传递多个结果值,可以在Shell脚本中用分隔符拼接所有结果输出,示例脚本如下:
echo "${param1}|${param2}|${param3}"
后续添加「拆分字段为变量」作业项,按分隔符|拆分后分别赋值给多个变量即可使用。
注意事项
- 如果不需要返回结果带换行,脚本中打印结果时改用
echo -n去掉末尾换行符 - 单条变量内容不要超过32767字符,超长度的复杂结果还是建议用临时文件中转
参考脚本示例

参考作业流程

内容的提问来源于stack exchange,提问作者ZelgiusLiu
相关产品推荐
相关产品推荐

