Jenkinsfile Groovy -> 管道中的 sh - 仍然调用 csh - 如何将 sh 节作为 BASH 运行

问题描述 投票:0回答:1

詹金斯 2.334.x

构建节点:RHEL 8.6 Jenkins 作业的用户(服务帐户是:svc_user. 分配给该用户的默认 shellcsh

在我的 Jenkinsfile 代码中,我在其中一个阶段中有以下代码。

      // Tried both ways
      //sh label: 'some_stage', script: '''#!/bin/bash
        sh '''#!/bin/bash 
          echo "SHELL = $SHELL"
          which git
          # some more commands here
      '''

即使我试图告诉詹金斯在第一行使用 shebang

SHELL = /bin/csh
,我还是得到了
#!/bin/bash

我在语法中缺少什么。 如何告诉 Jenkins 在 BASH 中执行上述节?

上述语法有什么问题?

使用

#!/bin/bash
shebang 创建一个小型包装器 shell 脚本是一种替代方案,但我目前无法做到。

jenkins jenkins-pipeline jenkins-job-dsl
1个回答
0
投票

您正在 bash 中执行它。

$SHELL
变量设置为用户默认 shell,而不是当前解释器 - 将 shebang 从
bash
更改为
dash
ksh
,然后亲自查看。

© www.soinside.com 2019 - 2024. All rights reserved.