将数组从 groovy 传递到 bash

问题描述 投票:0回答:1

我使用 Jenkins 进行 k6 测试 CI/CD。 在我的管道中,我有代码:

def users = ["user1","user2","user3"]
sh """
export MY_USERS=${users.join(' ')}
./start.sh
"""

在我的 bash 脚本中,我有:

SCRIPT_USERS=$MY_USERS

for user in $MY_USERS; do
  eval "$PARAMS $K6 run $user.js -o xk6-influxdb \
  --out web-dashboard=port=0\&report=$DIR/${user}.html" &
done

但是,在日志中我得到了

SCRIPT_USERS=user1

如何获取 bash 变量中的值? 我需要所有的价值观。 尝试了不同的传递变量的方法,但没有成功。

bash groovy jenkins-pipeline jenkins-groovy k6
1个回答
0
投票

在 Groovy 脚本中,您正在动态地“构建”脚本。执行 users.join(' ') 后相当于

export MY_USERS=user1 user2 user3

在赋值 
MY_USERS

后导出名称

user1
,同时导出未定义的名称
user2
user3
您需要引用 

${users.join(' ')}

,以便整个结果成为对

MY_USERS
的单个赋值的一部分。
def users = ["user1","user2","user3"]
sh """
export MY_USERS="${users.join(' ')}"
./start.sh
"""

	
© www.soinside.com 2019 - 2024. All rights reserved.