詹金斯 2.334.x
构建节点:RHEL 8.6 Jenkins 作业的用户(服务帐户是:svc_user. 分配给该用户的默认 shell 是 csh
在我的 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 脚本是一种替代方案,但我目前无法做到。
您正在 bash 中执行它。
$SHELL
变量设置为用户默认 shell,而不是当前解释器 - 将 shebang 从 bash
更改为 dash
或 ksh
,然后亲自查看。