我尝试在Jenkins中运行groovy脚本,但遇到以下错误:groovy.lang.MissingPropertyException: No such property: COUNTER for class
脚本如下:
def runAzureMockExecution(Map m = [:]) {
Map args = [
ENDPOINT : "",
action : "",
vmCount : "",
numSubscriptionId : "",
]
args << m
println(args)
def ENDPOINT = args.ENDPOINT
def action = args.action
def vmCount = args.vmCount
def numSubscriptionId = args.numSubscriptionId
sh("""
arr=();
COUNTER=0
while [ $COUNTER -lt $numSubscriptionId ]; do
suffix=$RANDOM
arr+=($suffix" ")
let COUNTER=COUNTER+1
done
""")
}
runAzureMockExecution(
ENDPOINT: "https://sample-url.com",
action: "ADD",
vmCount: 1,
numSubscriptionId: 5
)
有人能帮我吗?我也试着在在线编译器中运行同样的脚本,但得到了和上面一样的错误。
1条答案
按热度按时间qmb5sa221#
Groovy正在尝试插入
sh
块中的变量,因为您没有任何定义为COUNTER
的变量,所以它失败了。简单地转义COUNTER
和其他变量,如下所示。另一个选择是将所有内容作为环境变量传递,并通过用单引号将
sh
脚本括起来来避免字符串插值。