如何将 shell 脚本中的结果传递给 Job 中的变量

Posted

技术标签:

【中文标题】如何将 shell 脚本中的结果传递给 Job 中的变量【英文标题】:how can I pass the result in a shell script to a variable in Job 【发布时间】:2021-09-01 05:00:06 【问题描述】:

现在我有一个使用 shell 脚本来处理一些数据的 pentaho 工作。 但我发现如果我想在脚本中使用结果,我必须将其写入文件并读取文件以分配变量。 在以下步骤中是否有更简单的方法来使用脚本步骤的结果?

这是脚本内容。

这是整个过程。

【问题讨论】:

#1 你能分享一下你的 ktr 屏幕和 shell 步骤配置吗? pentaho 中的变量很复杂。 #2 你使用的是 kjb 还是 ktr? @JRichardsz 我正在使用 kjb。我会发布一些图片。 【参考方案1】:

在 pentaho 中你不能创建一个变量并在同一个地方使用。

基本上你只需要创建一个ktr和一个job:

第一个负责执行一些任务并使用set-variable steproot job level option)保存变量 在第一个 ktr 中创建的变量也可用于作业级别

如果你想在另一个ktr中使用该变量

第二个ktr,一开始应该使用get-variable步骤来检索之前转换中创建的变量 应使用作业按顺序执行转换

在您的情况下,您应该在第一个 ktr 中运行 shell,将结果转换为变量并使用 set-variable 保存它。您调用 ktr 的作业能够使用 previous ktr

中的变量 create

【讨论】:

现在我的过程是这样的:开始-> powershell 脚本(将结果写入文件)-> 设置变量步骤(从上面的文件生成变量)-> 打印它。这个过程运行良好。所以我认为如果 SetVariable 步骤可以从文件中生成变量,有什么方法可以直接生成它。 此外,我只在 kjb 中看到 shell 脚本步骤,但在 ktr 中看不到。这是版本的原因吗?我正在使用 7.0。

以上是关于如何将 shell 脚本中的结果传递给 Job 中的变量的主要内容,如果未能解决你的问题,请参考以下文章

将 $@ 传递给 shell 脚本中的函数

linux shell脚本,怎样变量传递执行结果

是否可以将脚本传递给shell变量中的awk?

jenkins参数化构建过程中的各个参数之间是没有关联的吗

linux shell脚本,怎样变量传递执行结果

将变量传递给 vagrant 中的 shell 脚本配置器