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()
//無(wú)需返回值,僅執(zhí)行shell命令
//最簡(jiǎn)單的方式
sh '<shell command>'例如:
工作中需要獲取shell 命令的執(zhí)行狀態(tài),返回0或者非0
groovy語(yǔ)句寫法為:
def exitValue = sh(script: "grep -i 'xxx' /etc/myfolder", returnStatus: true)
// 如果grep命令執(zhí)行沒(méi)有報(bào)錯(cuò),正常情況下exitValue為0,報(bào)錯(cuò)則為非0
echo "return exitValue :${exitValue}"
if(exitValue != 0){
//執(zhí)行操作
}需要注意的是當(dāng)命令中存在重定向的時(shí)候,會(huì)出現(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í)行命令然后賦值操作,類似下面的動(dòng)作:(個(gè)人理解)
sh "ls -l > commandResult"
result = readFile('commandResult').trim()groovy中存在另外一種解析shell腳本的方法,在jenkins pipeline中會(huì)使用會(huì)報(bào)異常,jenkins相關(guān)資料中也沒(méi)有看到此種用法,應(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Jenkins遷移之pipeline共享庫(kù)的實(shí)踐示例
- jenkins插件Pipeline腳本jenkinsfile操作指南
- Jenkins插件pipeline原理及使用方法解析
- jenkins 構(gòu)建項(xiàng)目之 pipeline基礎(chǔ)教程
- Jenkins Pipeline 部署 SpringBoot 應(yīng)用的教程詳解
- 使用Jenkins Pipeline自動(dòng)化構(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的問(wèn)題
- jenkins+shell自動(dòng)化部署的實(shí)現(xiàn)步驟
- jenkins 實(shí)現(xiàn)shell腳本化定時(shí)執(zhí)行任務(wù)的方法
相關(guān)文章
shell監(jiān)控腳本實(shí)例—監(jiān)控mysql主從復(fù)制
分享一例shell腳本,用于監(jiān)測(cè)mysql數(shù)據(jù)庫(kù)的主從復(fù)制,有需要的朋友不妨參考學(xué)習(xí)下2013-11-11
Shell腳本實(shí)現(xiàn)進(jìn)度條的兩種方式
本文主要介紹了Shell腳本實(shí)現(xiàn)進(jìn)度條的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
linux踢出遠(yuǎn)程登錄用戶命令(總結(jié)篇)
本文給大家總結(jié)了linux踢出遠(yuǎn)程登錄用戶命令,通過(guò)linux命令介紹了 tty 踢出登錄的操作方法,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-01-01
Shell實(shí)現(xiàn)的一些數(shù)學(xué)運(yùn)算自定義函數(shù)分享
這篇文章主要介紹了Shell實(shí)現(xiàn)的一些數(shù)學(xué)運(yùn)算自定義函數(shù)分享,本文的一些函數(shù)主要重寫了加減乘除算法,需要的朋友可以參考下2014-12-12
shell編程基礎(chǔ)之認(rèn)識(shí)與學(xué)習(xí)BASH
本文介紹下,shell基礎(chǔ)編程中有關(guān)bash的相關(guān)知識(shí),有需要的朋友參考學(xué)習(xí)下2013-11-11
Linux忘記root密碼進(jìn)入單用戶模式切換運(yùn)行級(jí)別切換用戶
這篇文章主要介紹了Linux忘記root密碼進(jìn)入單用戶模式切換運(yùn)行級(jí)別切換用戶,需要的朋友可以參考下2019-08-08

