2017-10-19 102 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}'