在一個Jenkins管道中,我正試圖將一個shell腳本的輸出檢索到一個變數中。
例子
list_test = sh(script:'ls | grep test', returnStdout:true).trim()
list_test.each { test ->
method(test)
}
只要確實有一個輸出,這就可以正常作業。 問題是當 "ls | grep test "的輸出為空時。
我最終出現了錯誤。
到目前為止,我發現的唯一的解決方法是:
try {
list_test = sh(script:'ls | grep test', returnStdout:true).trim()
}
catch (Exception ex) {
println("output is empty")
}
if (list_test) {
list_test.each { test ->
method(test)
}
}
是否有更好的方法來處理這種問題?
uj5u.com熱心網友回復:
如果grep無法找到字串,它將回傳非零的退出代碼。
你可以使用這樣的東西:
(ls|grep test)|echo "no found"
或者你可以使用任何命令(用你喜歡的命令替換'sleep 1'),如果你不需要任何輸出:
(ls|grep test)||sleep 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/327310.html
標籤:
