【问题标题】:Hide command executed, only show output隐藏执行的命令,只显示输出
【发布时间】:2017-11-28 04:14:55
【问题描述】:

我想在管道中隐藏 jenkins sh 执行命令

pipeline {
    agent any

    stages {
        stage('Load Lib') {
            steps {
                sh "ls -al /"
            }
        }
    }
}

当前结果:

[Pipeline] {
[Pipeline] stage
[Pipeline] { (Load Lib)
[Pipeline] sh
[Test] Running shell script
+ ls -al /

我想在输出中隐藏 Running shell script ls -al / 命令。

请帮忙

【问题讨论】:

标签: jenkins jenkins-pipeline


【解决方案1】:

这肯定和Echo off in Jenkins Console Output有关

对于管道,这意味着:

pipeline {
    agent any

    stages {
        stage('Load Lib') {
            steps {
                sh '''
                    set +x
                    //commands to be echoed off
                    ls -al
                    set -x 
                '''
            }
        }
    }
}

''' 表示多行命令。 set +x 关闭命令回显,set -x 再次打开它。

【讨论】:

  • 如果你需要插入 ${VARIABLE}s,你可以用三重双引号代替:"""
  • 这只是从控制台排除命令,但如果我从 UI 将鼠标悬停在 Jenkins Pipeline 阶段日志上,那么它仍然显示命令
【解决方案2】:

您可以通过将以下内容放在构建步骤的顶部来覆盖整个脚本的此行为:

#!/bin/bash +x

【讨论】:

  • 你能提到如何在 groovy 中添加这一行吗?比如,sh(script:"#!/bin/bash +x"??
  • 这只会从控制台隐藏命令,但如果您将鼠标悬停在管道阶段 UI 日志上,那么您仍然可以看到该命令
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 2015-05-14
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多