回答
从脚本的帮助按钮: 运行一个用于构建项目的shell脚本(默认为sh,但这是可配置的)。
如果你去管理詹金斯 - >配置系统,你会发现一个选项(称为“壳牌可执行文件”)的名称或绝对路径设置为你希望你的shell脚本使用shell ...
对于我的系统没有配置此选项...它使用bash!
我试图通过将下面的shell命令添加到我的Jenkins版本来打印env。
env
输出显示SHELL被设置为tcsh
我的实例。
$ SHELL是非常不可靠。尝试: ps -p $$ –
我跑在Redhat詹金斯,詹金斯因为不符合你必须添加一个默认的外壳安装的用户,当您在为用户詹金斯苏 日志 - 詹金斯-s /斌/庆典
简单地声明你的脚本的第一行的外壳,你在任何shell脚本文件做:
#!/bin/bash
这不起作用 使用的shell始终是启动该进程的* nix用户的默认外壳 – Janfy
这适用于我,使用最新版本的Jenkins截至2016/05。 –
@JohnMcGehee你使用的是什么版本的jenkins? –
您可以设置使用詹金斯>默认的shell管理詹金斯>外壳可执行。
对于使用不同的外壳从默认的工作,开始执行shell构建步骤与家当,如:
#!/usr/bin/tcsh -e -x
command1
command2
...
你甚至可以使用/usr/bin/env
使用,也就是说,巨蟒:
#!/usr/bin/env python3
当心的是,#!
后的空间不允许:
#! /usr/bin/tcsh # Wrong
这会给该错误,
java.io.IOException: Cannot run program ""
我测试上述上詹金斯1.625.3
詹金斯默认查找sh
在PATH
环境变量,然而,结果(例如/bin/sh
)可能指向不同的壳。例如,在Ubuntu 6.10或更高版本中,/bin/sh
是Dash的符号链接。
因此,对于“Jenkins中使用什么外壳......”这个问题,这取决于。为了避免不确定,可以:(取击作为一个例子)
- 显式配置壳可执行在管理詹金斯>配置系统>贝壳>贝壳可执行,例如,
/bin/bash
。(系统范围的配置) - 使用家当行指定的解释应该使用,例如,
#!/usr/bin/env bash
(具体到工作)
- 1. 触发詹金斯与外壳
- 2. 了解有什么区别詹金斯和Django的詹金斯
- 3. 使用詹金斯
- 4. 詹金斯标记为成功即使外壳脚本失败
- 5. 詹金斯壳不同服务器
- 6. 詹金斯壳会因设备
- 7. 詹金斯工作:无法从壳
- 8. git克隆不工作在詹金斯外壳脚本
- 9. 詹金斯管道外壳切割命令输出重定向
- 10. 詹金斯 - 传递变量密码外壳
- 11. 詹金斯不能访问外壳别名
- 12. 无法从詹金斯的执行外壳ping谷歌
- 13. 詹金斯管道多行外壳与转义字符
- 14. 重定向外壳输出詹金斯到一个文件
- 15. 詹金斯内部版本号在电源外壳脚本
- 16. NOHUP没有在詹金斯工作外壳
- 17. 詹金斯是代码检查员吗?使用詹金斯但
- 18. 触发使用詹金斯
- 19. 詹金斯使用REST API
- 20. 无法使用詹金斯
- 21. 詹金斯使用Groovy
- 22. 如何使用詹金斯
- 23. 为什么rsync的失败,詹金斯
- 24. 对詹金斯
- 25. 与詹金斯
- 26. 在詹金斯
- 27. 詹金斯
- 28. 在詹金斯
- 29. 在詹金斯
- 30. 詹金斯 - j_acegi_security_check
嗯,我没有看到当前版本的詹金斯:( – mdiehl13
我看到在CentOS 7.1上的jenkins 2.7.4的默认shell是bash(sh在OS上是bash),默认shell在Debian 8 docker容器上使用jenkins 2.32.1是破折号(在操作系统上是sh是破折号) – gaoithe