groovy 从Jenkins管道调用时,Bash脚本从不接收参数

0aydgbwb  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(189)

我在Ubuntu 18.04 slave上运行一个声明性的Jenkins管道。我的问题是,每当我试图从sh步骤向bash脚本提供参数时,参数都不在那里。当直接从终端或另一个脚本文件运行完全相同的命令时(类似于Jenkins通过临时文件的方式),参数都工作正常。
Jenkins文件看起来像

pipeline {
    agent { label "ubuntu" }
    options { timeout(time: 1, unit: 'HOURS') }
    stages {
        stage('Build') {
            steps {
                sh """
                #!/bin/bash
                ...
                . ./Scripts/install_tools.sh "force"
                """
            }
        }
    }
}

管道本身运行顺畅,并完成了我需要它完成的工作。


# !/bin/bash

echo "Running $0"
echo "Args: $@"

...

echo "Args: $@"行我也尝试过$*$1-每次参数都返回为空,但只有在从管道运行时。在我看来,这似乎与一些Groovy的东西有关,但我不知道是什么。
如何在管道中调用bash脚本并正确传递参数?

pkwftd7m

pkwftd7m1#

#!/bin/bash放入第一行

sh """#!/bin/bash
   . ./Scripts/install_tools.sh "force"
   """

否则.(点)命令可能具有不同含义

相关问题