Jenkins 将shell脚本启动方式修改为bash

shell 复制代码
platform="arm x86"
if [[ "$platform" =~ "arm" ]]
then
    echo "arm"
fi

最近在调试Jenkins实现的一些功能,发现在本地可以运行的脚本内容到了Jenkins里面就没办法运行了,不是提示unexpected operator就是提示[[ : not found,在搜索过资料后发现这两个问题都会指向脚本的启动方式,也就是区分sh或者bash

❗bash与sh是有区别的,两者是不同的命令,且bash是sh的增强版,而"[[]]"是bash脚本中的命令,因此在执行时,使用sh命令会报错,将sh替换为bash命令即可。

所以需要将Jenkinsshell的启动命令改成bash,操作方法如下:

  1. 点击左侧导航菜单中的Manage Jenkins选项
  2. 在管理页面上,向下滚动到Configure System部分,点击进入
  3. 进入Configure System界面后,找到名称为"Shell"或类似的字段(根据不同版本的Jenkins可能会有所不同)。
  4. 将默认的Shell更改为Bash。通常情况下,这个字段应该提供了多种选项,包括Bash、CMD等。确保选择正确的选项来指定Bash作为默认的Shell。
  1. 完成后,记得点击页面底部的"保存"按钮以保存更改。
  2. 现在,当创建新任务时,Jenkins将自动使用Bash作为默认的Shell。

❗若需要在特定的构建步骤中手动指定使用Bash,则可以在相关的构建步骤中添加"sh"命令,例如:sh script.sh

❗如果系统没有安装Bash,那么首先需要在服务器上安装Bash才能使其生效。

Reference:
https://blog.csdn.net/lc250123/article/details/90747798
https://blog.csdn.net/Levon123/article/details/124882509

相关推荐
dingdingfish19 小时前
Bash学习 - 第3章:Basic Shell Features,第5节:Shell Expansions
开发语言·学习·bash
xuchaoxin137521 小时前
bash@脚本中的命令行参数解析基础@shift命令@getopts
bash
礼拜天没时间.1 天前
自定义镜像制作——从Dockerfile到镜像
linux·docker·容器·centos·bash
淡忘_cx1 天前
使用Jenkins自动化部署vue项目(2.528.2版本)
vue.js·自动化·jenkins
晚风_END1 天前
Linux|操作系统|elasticdump的二进制方式部署
运维·服务器·开发语言·数据库·jenkins·数据库开发·数据库架构
源文雨1 天前
shell调用ffmpeg递归转换所有wav至flac的脚本
ffmpeg·bash·音视频·音频·unix·shell·音频编码
淡忘_cx1 天前
使用Jenkins自动化部署spring-java项目+宝塔重启项目命令(2.528.2版本)
java·自动化·jenkins
闲人编程2 天前
Elasticsearch搜索引擎集成指南
python·elasticsearch·搜索引擎·jenkins·索引·副本·分片
程序员敲代码吗2 天前
如何通过命令行启动COMSOL的参数化、批处理和集群扫描
java·c#·bash
vx_Biye_Design3 天前
【关注可免费领取源码】房屋出租系统的设计与实现--毕设附源码40805
java·spring boot·spring·spring cloud·servlet·eclipse·课程设计