循环变量未传递给 Jenkins 中的 shell 脚本
Loop variable is not passed to shell script in Jenkins
我试图将循环变量传递给 shell 脚本,但我的 shell 脚本得到一个空变量值
pipeline {
agent any
stages {
stage('Test') {
steps {
script {
elements = ['1', '2', '3', '4']
for (String val in elements){
echo val
check = sh (script: """bash ./check_access/check.sh ${val}""", returnStdout: true).trim()
echo "check: ${check}"
}
}
}
}
}
}
./check_access/check.sh
#!/bin/sh
echo "val: $val"
我得到的结果
18:13:30 1
18:13:31 + bash ./check_access/check.sh 1
18:13:31 check: val:
.
.
.
18:13:31 4
18:13:32 + bash ./check_access/check.sh 4
18:13:32 check: val:
想要的结果
bash ./check_access/check.sh 1
check: val: 1
.
.
.
bash ./check_access/check.sh 4
check: val: 4
你能帮忙吗
解决方法:
我将 val
作为第一个参数传递给我的脚本。所以我应该在脚本中使用 </code>,而不是 <code>$val
我试图将循环变量传递给 shell 脚本,但我的 shell 脚本得到一个空变量值
pipeline {
agent any
stages {
stage('Test') {
steps {
script {
elements = ['1', '2', '3', '4']
for (String val in elements){
echo val
check = sh (script: """bash ./check_access/check.sh ${val}""", returnStdout: true).trim()
echo "check: ${check}"
}
}
}
}
}
}
./check_access/check.sh
#!/bin/sh
echo "val: $val"
我得到的结果
18:13:30 1
18:13:31 + bash ./check_access/check.sh 1
18:13:31 check: val:
.
.
.
18:13:31 4
18:13:32 + bash ./check_access/check.sh 4
18:13:32 check: val:
想要的结果
bash ./check_access/check.sh 1
check: val: 1
.
.
.
bash ./check_access/check.sh 4
check: val: 4
你能帮忙吗
解决方法:
我将 val
作为第一个参数传递给我的脚本。所以我应该在脚本中使用 </code>,而不是 <code>$val