jenkins?pipeline中獲取shell命令的標(biāo)準(zhǔn)輸出或者狀態(tài)的方法小結(jié)
//獲取標(biāo)準(zhǔn)輸出 //第一種 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() //獲取執(zhí)行狀態(tài) //第一種 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() //無需返回值,僅執(zhí)行shell命令 //最簡單的方式 sh '<shell command>'
例如:
工作中需要獲取shell 命令的執(zhí)行狀態(tài),返回0或者非0
groovy語句寫法為:
def exitValue = sh(script: "grep -i 'xxx' /etc/myfolder", returnStatus: true) // 如果grep命令執(zhí)行沒有報(bào)錯(cuò),正常情況下exitValue為0,報(bào)錯(cuò)則為非0 echo "return exitValue :${exitValue}" if(exitValue != 0){ //執(zhí)行操作 }
需要注意的是當(dāng)命令中存在重定向的時(shí)候,會出現(xiàn)返回狀態(tài)異常,因?yàn)槲覀円祷貭顟B(tài),刪除重定向(&>/dev/null)即可,比如:
def exitValue = sh(script: "grep -i 'xxx' /etc/myfolder &>/dev/null", returnStatus: true) // xxx不存在,正常邏輯是返回非0,但是實(shí)際中返回的是0 。 // 可以理解為先執(zhí)行命令然后賦值操作,類似下面的動作:(個(gè)人理解) sh "ls -l > commandResult" result = readFile('commandResult').trim()
groovy中存在另外一種解析shell腳本的方法,在jenkins pipeline中會使用會報(bào)異常,jenkins相關(guān)資料中也沒有看到此種用法,應(yīng)該是不支持
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()
到此這篇關(guān)于jenkins pipeline中如何獲取shell命令的標(biāo)準(zhǔn)輸出或者狀態(tài)的文章就介紹到這了,更多相關(guān)jenkins pipeline獲取shell命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Jenkins遷移之pipeline共享庫的實(shí)踐示例
- jenkins插件Pipeline腳本jenkinsfile操作指南
- Jenkins插件pipeline原理及使用方法解析
- jenkins 構(gòu)建項(xiàng)目之 pipeline基礎(chǔ)教程
- Jenkins Pipeline 部署 SpringBoot 應(yīng)用的教程詳解
- 使用Jenkins Pipeline自動化構(gòu)建發(fā)布Java項(xiàng)目的方法
- jenkins?pipeline中獲取shell命令的標(biāo)準(zhǔn)輸出或者狀態(tài)的方法小結(jié)
- Jenkinsfile?中如何在?`sh`?步驟中執(zhí)行多行?Shell?命令(多行命令的方法)
- 如何解決jenkins 執(zhí)行shell腳本 sh: ... not found的問題
- jenkins+shell自動化部署的實(shí)現(xiàn)步驟
- jenkins 實(shí)現(xiàn)shell腳本化定時(shí)執(zhí)行任務(wù)的方法
相關(guān)文章
Linux實(shí)現(xiàn)徹底清理空文件夾的方法詳解
這篇文章主要介紹了Linux實(shí)現(xiàn)徹底刪除指定路徑下的所有空文件夾。這里的空文件夾的認(rèn)定標(biāo)準(zhǔn)是:如果某個(gè)文件夾的子文件夾全是空文件夾,也認(rèn)為該文件夾是空文件夾,需要的可以參考一下2022-10-10Linux系統(tǒng)links和elinks命令的基本使用教程
links和elinks都是Linux系統(tǒng)下的命令行瀏覽器,主要用于在終端中查看網(wǎng)頁內(nèi)容,這篇文章主要介紹了Linux系統(tǒng)之links和elinks命令的基本使用,需要的朋友可以參考下2023-09-09linux shell命令行選項(xiàng)與參數(shù)用法詳解
本文介紹了linux shell中使用命令行選項(xiàng)與命令行參數(shù)的方法,在bash中,可以用以下三種方式來處理命令行參數(shù),每種方式都有自己的應(yīng)用場景2014-04-04Linux中獲取某個(gè)進(jìn)程的系統(tǒng)調(diào)用以及參數(shù)(故障排查案例)
這篇文章主要介紹了Linux中獲取某個(gè)進(jìn)程的系統(tǒng)調(diào)用以及參數(shù)的方法,總結(jié)自一個(gè)故障排查案例,需要的朋友可以參考下2014-06-06Shell腳本之文件批量創(chuàng)建與修改的簡單方法
有時(shí)需要將文件內(nèi)容進(jìn)行修改,如果文件數(shù)量不多可以一個(gè)一個(gè)修改,那么如果文件數(shù)量很多一個(gè)一個(gè)修改很麻煩,這篇文章主要給大家介紹了關(guān)于Shell腳本之文件批量創(chuàng)建與修改的相關(guān)資料,需要的朋友可以參考下2021-06-06阿里云主機(jī)一鍵安裝lamp、lnmp環(huán)境的shell腳本分享
這篇文章主要介紹了阿里云主機(jī)一鍵安裝lamp、lnmp環(huán)境的shell腳本分享,需要的朋友可以參考下2014-07-07