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

I have tried the following:

sh通话中拨打"#!/bin/bash":

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

bash呼叫替换sh呼叫:

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

Additional Info:

我的命令比echo hello world复杂.

推荐答案

您提供的Groovy脚本正在将第一行格式化为结果脚本中的空行.shebang命令脚本使用/bin/bash而不是/bin/sh运行,它必须位于文件的第一行,否则将被忽略.

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

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

它将使用/bin/bash执行.

Linux相关问答推荐

在Linix&;Mac中运行Reaction本机项目时出现问题

eBPF:仅使用系统调用加载 eBPF 程序并将其附加到 sys_enter_execve

bind() 错误 98 - 地址已在使用中

如何使用 Linux 命令行跨子目录查找相似的文件名?

erlang 格式的 utf8 变为 \x(反斜杠 x)ascii 编码

删除一行和它之前的一行

在服务器目录之外启动 DolphinDB 服务器时出错

如何使用 shell 脚本查找具有最大上下文长度的行号?

如何在ubuntu中通过.sh文件启动多个服务

Linux 如何将主机文件作为用户的输入并将其调用到脚本中

RealUID,保存的 UID,有效的 UID.这是怎么回事?

如何下载较旧的 google play 服务?

在 linux 上查看文件大小

C ++中套接字上的协议缓冲区

在 Emacs 中匹配括号的命令是什么?

如何在shell的递归目录中列出特定类型的文件?

如何通过命令提示符判断 Linux 中的 BIOS 版本或名称?

如何将所有文件从一个目录移动(和覆盖)到另一个目录?

ImportError:在 ubuntu 14.04 中没有名为 _io 的模块

如何限制堆大小?