jenkins pipeline中获取shell命令的标准输出或者状态的方法小结

 更新时间:2024年02月17日 10:18:45   作者:发哥随手记  
这篇文章主要介绍了jenkins pipeline中获取shell命令的标准输出或者状态,工作中需要获取shell 命令的执行状态,返回0或者非0,本文给大家介绍的非常详细,需要的朋友可以参考下
//获取标准输出
//第一种
result = sh returnStdout: true ,script: "<shell command>"
result = result.trim()
//第二种
result = sh(script: "<shell command>", returnStdout: true).trim()
//第三种
sh "<shell command> > commandResult"
result = readFile('commandResult').trim()
//获取执行状态
//第一种
result = sh returnStatus: true ,script: "<shell command>"
result = result.trim()
//第二种
result = sh(script: "<shell command>", returnStatus: true).trim()
//第三种
sh '<shell command>; echo $? > status'
def r = readFile('status').trim()
//无需返回值,仅执行shell命令
//最简单的方式
sh '<shell command>'

例如:
工作中需要获取shell 命令的执行状态,返回0或者非0
groovy语句写法为:

def exitValue = sh(script: "grep -i 'xxx' /etc/myfolder", returnStatus: true)
// 如果grep命令执行没有报错,正常情况下exitValue为0,报错则为非0
echo "return exitValue :${exitValue}"
if(exitValue != 0){
   //执行操作
}

需要注意的是当命令中存在重定向的时候,会出现返回状态异常,因为我们要返回状态,删除重定向(&>/dev/null)即可,比如:

def exitValue = sh(script: "grep -i 'xxx' /etc/myfolder &>/dev/null", returnStatus: true)
// xxx不存在,正常逻辑是返回非0,但是实际中返回的是0 。
// 可以理解为先执行命令然后赋值操作,类似下面的动作:(个人理解)
sh "ls -l > commandResult"
result = readFile('commandResult').trim()

groovy中存在另外一种解析shell脚本的方法,在jenkins pipeline中会使用会报异常,jenkins相关资料中也没有看到此种用法,应该是不支持

groovy.lang.MissingPropertyException: No such property: rhel for class: groovy.lang.Binding

写法为:

def command = "git log"
def proc = command.execute()
proc.waitFor()
def status = proc.exitValue()

到此这篇关于jenkins pipeline中如何获取shell命令的标准输出或者状态的文章就介绍到这了,更多相关jenkins pipeline获取shell命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux获取系统启动时间示例详解

    linux获取系统启动时间示例详解

    这篇文章主要介绍了linux获取系统启动时间的示例,需要的朋友可以参考下
    2014-02-02
  • Linux实现彻底清理空文件夹的方法详解

    Linux实现彻底清理空文件夹的方法详解

    这篇文章主要介绍了Linux实现彻底删除指定路径下的所有空文件夹。这里的空文件夹的认定标准是:如果某个文件夹的子文件夹全是空文件夹,也认为该文件夹是空文件夹,需要的可以参考一下
    2022-10-10
  • Linux中sftp常用命令整理

    Linux中sftp常用命令整理

    sftp命令是一款交互式的文件传输程序,不仅对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能。这篇文章整理了Linux中sftp的常用命令,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Linux系统links和elinks命令的基本使用教程

    Linux系统links和elinks命令的基本使用教程

    links和elinks都是Linux系统下的命令行浏览器,主要用于在终端中查看网页内容,这篇文章主要介绍了Linux系统之links和elinks命令的基本使用,需要的朋友可以参考下
    2023-09-09
  • linux shell命令行选项与参数用法详解

    linux shell命令行选项与参数用法详解

    本文介绍了linux shell中使用命令行选项与命令行参数的方法,在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景
    2014-04-04
  • Shell中if的基本语法和常见判断用法

    Shell中if的基本语法和常见判断用法

    这篇文章主要介绍了Shell中if的基本语法和常见判断用法,本文讲解了if的基本语法、对字符串的判断、对数字的判断、对文件属性的判断、逻辑判断等内容,需要的朋友可以参考下
    2015-06-06
  • Linux中获取某个进程的系统调用以及参数(故障排查案例)

    Linux中获取某个进程的系统调用以及参数(故障排查案例)

    这篇文章主要介绍了Linux中获取某个进程的系统调用以及参数的方法,总结自一个故障排查案例,需要的朋友可以参考下
    2014-06-06
  • Linux Shell的一些使用小技巧收集

    Linux Shell的一些使用小技巧收集

    这篇文章主要介绍了Linux Shell的一些使用小技巧收集,本文收集了几十个小技巧,非常实用,需要的朋友可以参考下
    2014-12-12
  • Shell脚本之文件批量创建与修改的简单方法

    Shell脚本之文件批量创建与修改的简单方法

    有时需要将文件内容进行修改,如果文件数量不多可以一个一个修改,那么如果文件数量很多一个一个修改很麻烦,这篇文章主要给大家介绍了关于Shell脚本之文件批量创建与修改的相关资料,需要的朋友可以参考下
    2021-06-06
  • 阿里云主机一键安装lamp、lnmp环境的shell脚本分享

    阿里云主机一键安装lamp、lnmp环境的shell脚本分享

    这篇文章主要介绍了阿里云主机一键安装lamp、lnmp环境的shell脚本分享,需要的朋友可以参考下
    2014-07-07

最新评论