从 Pentaho kettle 中的 shell 脚本设置变量,可以被进一步的作业访问

Setting varible from shell script in Pentaho kettle which can be accessed by further jobs

我想知道如何从 pentaho kettle 中可用的 shell 作业设置变量,工作流程中的进一步作业(简单评估)可以访问该变量。

我正在尝试创建一个工作流,其中我有一个开始元素,该元素将作为 shell作业触发以检查文件夹是否存在,如果文件夹存在则设置一个变量。下一个作业是简单评估,它需要检查变量(由 shell 作业设置)是否为真,以继续工作流或终止工作流。

开始-->ShellJob(检查创建的文件夹并设置变量)-->SimpleEvaluation Job。

--米克

好问题。我不知道这种功能,因为 "Execute a shell script..." 步骤并非设计为数据管道。再者,should/can一个脚本return对你有什么价值?是 echo 的结果吗? shell 脚本基本上可以是任何东西。我会说 PDI 中没有内置功能是有原因的。

话虽如此,你可以做的是这样的:

  1. 执行脚本,在脚本结束时将变量写入文件系统上的文本文件
  2. 创建一个子转换,从您在 shell 脚本步骤中编写的文件中读取变量,然后将 it/them 存储在全局范围变量
  3. 评估作业中的变量

它可能看起来有点麻烦,但它应该可以为您完成工作,因为您要求以一种并非真正设计用于使用的方式使用 Shell 脚本步骤。

下面是一个高级实现的例子(子转换的实现应该很简单):

希望对您有所帮助。