循环变量未传递给 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