Jenkinsfile如何在变量中使用grep文件名

时间:2018-08-23 13:41:45

标签: grep jenkins-pipeline

我在其他服务器中有文件,该名称将更改。 File: testfile-1.2-12345.sh"12345"将会改变。

如何将文本转换为变量?

在服务器上可以正常工作,并且可以打印12345

ls ~/test/testfile* | awk -F'[-.s]' '{print $5}'

但是当我从詹金斯那里做的时候,它是行不通的:

def versio = sh "ssh user@${ip} ls ~/test/testfile* | awk -F'[-.s]' '{print \$5}'"

它打印"12345",但是如果我尝试打印${versio},它显示null

1 个答案:

答案 0 :(得分:0)

您的命令正确。但是在管道中,您需要指定returnStdout:true。详细文档为here

def versio = sh returnStdout: true, script: 'ssh user@${ip} ls ~/test/testfile* | awk -F\'[-.s]\' \'{print \\$5}\''