2017-10-19 61 views
0

我在我的Jenkins管道中尝试下面的行。在下面一组行中,我将变量IMAGE_NAME分配到shell中,并尝试访问Jenkins管道脚本中的变量,但无法做到这一点。任何想法如何做到这一点?从Jenkins管道中访问Shell变量

stage('Build: Get Image') { 
    steps { 
     echo 'Getting docker image' 
     sh "IMAGE_NAME=`grep -ri \"Successfully built\" 
      $BUILD_FILE_NAME | awk \'{print \$3}\'`" 
     echo "Image Name is:$IMAGE_NAME" 
    } 
} 
+0

无论全球环境变量暴露于詹金斯与否,取决于几乎你如何启动jenkins以及如何定义这些变量。 在jenkins步骤中发出命令“env”以查看哪些变量可用。 另外你如何开始詹金斯和你如何/你在哪里定义这个变量? –

+0

我做了一个env,但没有显示IMAGE_NAME。但今天经过很多艰苦的努力,我发现了这个问题。 IMAGE_NAME数据末尾有一个\ r \ n字符。所以我用以下命令去除\ r \ n,并在awk中使用printf,它工作正常。非常感谢你 sh“IMAGE_NAME ='grep -ri \”成功构建\“ $ BUILD_FILE_NAME | awk \'{printf \”%s \“\ $ 3} \''” –

回答

0

您可以将其定义为环境变量:

env.some_var = 'AAAA' 

和阅读:

sh 'echo ${env.some_var}'