在詹金斯管道上运行 bash 命令

新手上路,请多包涵

在 groovy 脚本中(对于 jenkins 管道):如何运行 bash 命令而不是 sh 命令?

我尝试了以下方法:

sh --- 里面调用“ #!/bin/bash ”:

 stage('Setting the variables values') {
    steps {
         sh '''
            #!/bin/bash
            echo "hello world"
         '''
    }
}

sh 调用替换为 bash 调用:

 stage('Setting the variables values') {
    steps {
         bash '''
            #!/bin/bash
            echo "hello world"
         '''
    }
}

附加信息:

我的命令比 echo hello world 更复杂。

原文由 Yago Azedias 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 479
2 个回答

您提供的 Groovy 脚本将生成脚本中的第一行格式化为空行。告诉脚本使用 /bin/bash 而不是 /bin/sh 运行的 shebang 需要位于文件的第一行,否则将被忽略。

因此,您应该像这样格式化 Groovy:

 stage('Setting the variables values') {
    steps {
         sh '''#!/bin/bash
                 echo "hello world"
         '''
    }
}

它将使用 /bin/bash 执行。

原文由 Jake 发布,翻译遵循 CC BY-SA 4.0 许可协议

根据 此文档,您应该可以这样做:

 node {
    sh "#!/bin/bash \n" +
       "echo \"Hello from \$SHELL\""
}

原文由 Jacob 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题