当前位置: 首页 > 知识库问答 >
问题:

将python脚本的输出获取到Jenkinsfile中的变量中

史逸春
2023-03-14

我有一个Python脚本,它在stdout上返回一个字符串。python脚本返回的值可以收集在bash脚本中,如下所示:

#!/bin/bash

outputString=$(./my_python_script.py -some_parameter 2>&1)
echo "The output string is $outputString"

在使用Groovy编写的Jenkinsfile编写脚本的管道上,我需要从Jenkinsfile调用python脚本,并将输出收集到Jenkinsfile中的变量中。

问题:
如果我的Jenkinsfile在macOS节点上运行,我该如何做到这一点。以下是我至少可以在shell变量中获取输出的方法。

stage('My build') {
    node('my_build_node') {
        sh 'output_string=$(./my_python_script.py -some_parameter 2>&1) && sh 'echo The output_string is $output_string'
    }
}

共有1个答案

堵鸿光
2023-03-14
def outputString = sh returnStdout:true, script:'./my_python_script.py -some_parameter 2>&1'
println "the output string is: ${outputString}"

步骤参数详细信息:https://www.jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell脚本

 类似资料:
  • 问题内容: 在Jenkinsfile Groovy脚本阶段,假设我要发出一个Linux命令来输出字符串的行和列,并想要在特定行的输出中获取第n列。这样的命令的一个示例是“ ls -al”。所以我这样做正确吗? 但是,如何获取本质上为$ {COL [4]}的值,该值是“ ls -al”命令的第五列,即目录大小? 谢谢! 问题答案: 您在示例中显示的bash脚本不会返回正确的目录大小。它将以递归方式返

  • 在Jenkinsfile Groovy脚本阶段,假设我想发出一个linux命令来输出字符串的行和列,并希望在某一行的输出中获取第n列。此类命令的示例是“ls-al”。所以我做得对吗? 但是我如何获得${COL[4]}的值,这是“ls-al”命令中的第五列,即目录大小? 谢谢

  • 问题内容: 这似乎是一个简单的问题,但是我还没有找到答案。 我有以下存储过程 它已通过ObjectContext在C#+ EF代码中使用,没有问题 但是,当我尝试直接从SQL脚本调用它时,它似乎不起作用 始终为0。如何在sql脚本中将值获取到@Id变量中? 问题答案: 过程返回值不同于该过程返回的结果集。您的存储过程返回一个结果集,并且不返回任何返回值(最终为,在退出过程时将被隐式转换为)。 为了

  • 问题内容: 我从PHP脚本执行Python脚本时遇到问题。我的客户端使用Bluehost,因此我使用在此描述的easy_install方法为Python安装了第三方模块(numpy):https ://my.bluehost.com/cgi/help/530?step = 530 为了演示我的问题,我创建了两个python脚本和一个PHP脚本。 hello.py包含: hello-numpy.py

  • 问题内容: 在我的父脚本中,我执行以下操作: 在脚本中,我希望大多数日志消息都进入日志文件,但是我希望根据打印条件在控制台上打印一些消息: 但是它正在打印到outfile,我也想在控制台上打印 但这aslso不起作用。任何帮助,将不胜感激! 问题答案: 如果将stdout,stderr重定向,则可以尝试直接打印到控制台: 例:

  • 问题内容: 我正在生成大量的XML,当用户单击表单按钮时,这些XML将作为发布变量传递到API。我还希望能够事先向用户显示XML。 该代码有点像以下结构: 我的XML正在生成一些while循环和其他内容。然后需要在两个位置(预览和表单值)中显示它。 我的问题是。我如何在变量中捕获生成的XML或其他内容,所以我只需要生成一次,然后将其打印出来就可以在预览中生成,然后在表单值中生成? 问题答案: