簡體   English   中英

如何從Jenkins中的多行shell中提取命令output

[英]How to extract command output from the multi lines shell in Jenkins

stage('Deployment'){
                            script {                                   
                                sh """
                                export KUBECONFIG=/tmp/kubeconfig
                                kubectl describe deployment nginx | grep Image"""

                            }
                    }

如何在環境變量中獲取“kubectl describe deployment nginx | grep Image”的output

這種情況下,可以在env object中訪問pipeline scope中的環境變量,為其成員賦值,初始化新的環境變量。 您還可以使用sh step 方法的可選returnStdout參數來返回該方法的stdout ,因此將其分配給 Groovy 變量(因為它位於管道的script塊內)。

script {             
  env.IMAGE = sh(script: 'export KUBECONFIG=/tmp/kubeconfig && kubectl describe deployment nginx | grep Image', returnStdout: true).trim()
}

請注意,您還希望將KUBECONFIG環境變量放在pipeline scope 的環境指令中(除非 kubeconfig 在不同范圍內會有所不同):

pipeline {
  environment { KUBECONFIG = '/tmp/kubeconfig' }
}

您可以使用以下語法:

someVariable = sh(returnStdout: true, script: some_script).trim()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM