我刚开始学习groovy,我想用svn copy命令把svnSourcePath和svnDestPath传递给shell脚本,但是URL没有被呈现.
node {
stage 'Copy Svn code'
def svnSourcePath = "${svnBaseURL}${svnAppCode}${svnEnvDev}${SVN_DEV_PACKAGE}"
def svnDestPath = "${svnBaseURL}${svnAppCode}${svnEnvTest}${SVN_DEV_PACKAGE}"
print "DEBUG: svnSourcePath = ${svnSourcePath}"
print "DEBUG: svnDestPath = ${svnDestPath}"
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: crendentialsIdSVN, passwordVariable: 'SVN_PWD', usernameVariable: 'SVN_USER']]) {
sh '''
svn copy $svnSourcePath $svnDestPath -m 'promote dev to test' --username $SVN_USER --password $SVN_PWD '''
}
}
产出
+ svn copy -m 'promote dev to test' --username techuser --password 'xxxyyy'
svn: E205001: Try 'svn help' for more info
svn: E205001: Not enough arguments provided
7条答案
按热度按时间5anewei61#
我在变量两边加上了单引号和加号运算符('+ variable +')。现在它可以工作了
qeeaahzv2#
+1到Selvam答案
下面是我使用参数插件的用例,
字符串参数名称:管道参数
默认值:4
上面打印4个abcd
xa9qqrwz3#
您可以使用
""" content $var """
。"""
允许字符串插值在这里的文档;'''
则不会。y1aodyip4#
只有一次双引号也可以使用
ghhaqwfi5#
我在
sh
命令中寻找插入变量值的方法时遇到了这个问题。单引号
'string'
和三重单引号'''string'''
字符串都不支持插值。According to Groovy documentation:
单引号字符串是普通的java.lang.String,不支持插值。
三重单引号字符串是普通的java.lang.String,不支持插值。
因此,要在groovy(GString)中使用嵌入的字符串值,必须使用双引号,其中的任何GString都将被求值,即使它位于单引号字符串中。
ztigrdn86#
如果需要bash脚本,您需要执行如下操作:
在全局或局部(函数)级别设置此变量,以便sh脚本可以访问这些变量:
在shell脚本中,如下所示调用它们
mm5n2pyu7#