簡體   English   中英

詹金斯與groovy腳本

[英]Jenkins with groovy script

我正在使用groovy獲取一些參數以在jenkins中運行作業。

我的問題是為什么腳本A的作品和B和C的作品不一樣

一種

def sout = new StringBuilder(), serr = new StringBuilder()
def proc = 'ls -D --format=single-column /path/folder'.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
println "out> $sout err> $serr"
return sout.tokenize()

B \\\\是逃脫\\

def proc = 'find /path/folder/ -type f \\( -iname \\*.ear -o -iname \\*.war \\)'.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
println "out> $sout err> $serr"
return sout.tokenize()

C script.sh返回文件列表

def sout = new StringBuilder(), serr = new StringBuilder()
def proc = '/scripts/script.sh'.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
println "out> $sout err> $serr"
return sout.tokenize()

有一些jenkins限制來運行groovy或shell命令中的腳本嗎?

經過很多嘗試,我可以使這項工作。

if (Origem.equals('FILE')) {
def cmd = ["/bin/bash","-c","/opt/scripts/SearchPackage.sh"]
def sout = new StringBuffer()
def serr = new StringBuffer()
def proc = cmd.execute()
proc.consumeProcessOutput ( sout, serr )
proc.waitForProcessOutput ()
return sout.tokenize()
}

Groovy沒有將//字符識別為'/'的轉義符。 我只是決定將所有內容都放入一個shell腳本中,並使用Groovy來調用此腳本。 這個問題已經解決了,但是如果有人有更好的方法,我會很高興的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM