声明:Jenkins 管道中未发现错误

声明:Jenkins 管道中未发现错误

我有一个 Jenkins 管道,其中有一个运行脚本的步骤sh。像这样的东西,但之间有更多不相关的命令:

steps {
            echo 'Running build with all parameters'
                sh '''
                    #!/bin/bash

                    declare -A tests

... ETC

当我在 CentOS 的 Jenkins 节点上运行它时,一切都很好,管道通过所有步骤/命令成功运行。但是当我使用 Ubuntu 在 Jenkins 节点上运行相同的管道时,出现以下错误:

+ declare -A tests
/opt/jenkins-slave/workdir/workspace/Metaweb@tmp/durable-9a389b8a/script.sh: 14: declare: not found

有任何想法吗?

答案1

根据您当前编写脚本的方式,shebang 之前有一个非常微妙的换行符。要使换行符明确:

sh '''\n
  #!/bin/bash\n
\n
  declare -A tests\n

为了正确解释 shebang,它需要位于脚本的第一行,因此您需要删除前导换行符;即:

sh '''#!/bin/bash

  declare -A tests

相关内容