目录
一、Groovy和Shell语法混搭可能遇到的问题
1.1 shell语法中$符号无法识别问题
报错: groovy.lang.MissingPropertyException: No such property: your_name for class: groovy.lang.Binding
stage('测试') {
steps {
script {
sh """
your_name="kajie"
echo "test '${your_name}' in Linux"
"""
}
}
}
上面shell脚本里面是能正常输出your_name变量,而在jenkins sh """ """里面则会因为$报错
解法: 添加转义 \${your_name} 即可
1.2 shell语法里面获取groovy变量问题
stage('测试') {
steps {
script {
def aaa = "aaa"
sh '''
echo ${aaa}
'''
}
}
}
定义了一个aaa变量,在shell语法里面打印${aaa},发现打印内容为空
解法: sh ''' ''' 单引号替换为双引号即可 sh """ """