以下代码是我的代码的一个非常简化的版本,只是为了更好的解释:
def String FOLDER_NAME = "TestFolder"
def createFolder() {
sh('''
ls
mkdir ${FOLDER_NAME}
ls
''')
}
我想使用存储在FOLDER_NAME变量中的名称来创建新文件夹。问题是当前代码不使用它。我的第一种方法是使用''围绕变量访问:
def createFolder() {
sh('''
ls
mkdir '${FOLDER_NAME}'
ls
''')
}
但是这会创建一个名为$ {FOLDER_NAME}的新文件夹,并且不会使用变量值。
我的问题是,我如何更改代码以使其使用变量值,而不是变量调用?
答案 0 :(得分:3)
您的解决方案将由differentiating between groovy's single and double quotes解决。
字符串替换仅在双引号""
内完成。因此,要解决此问题,只需将sh
命令更改为:
def createFolder() {
sh("""
ls
mkdir '${FOLDER_NAME}'
ls
""")
}
答案 1 :(得分:-1)
我的解决方案不同,在shell脚本中使用变量可以实现如下:
def createFolder() {
sh('''
ls
mkdir ''' + FOLDER_NAME + '''
ls
''')
}