news 2026/6/24 18:52:35

执行 install.sh 报错 `env: ‘bash\r‘: No such file or directory` 怎么解决?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
执行 install.sh 报错 `env: ‘bash\r‘: No such file or directory` 怎么解决?

适用场景:
Docker / Jenkins / Linux 容器中执行.sh脚本失败
报错:env: ‘bash\r’: No such file or directory


一、问题现象(很多人都会遇到)

在 Docker 容器或 Jenkins 容器中,执行脚本:

chmod+x install.sh ./install.sh

结果报错:

env: ‘bash\r’: No such file or directory env: use -[v]S to pass options in shebang lines

看起来像是:

  • bash 不存在?
  • 权限不对?
  • Jenkins / Docker 有问题?

👉其实都不是。


二、根本原因(重点,一定要看)

✅ 真正原因:脚本是 Windows 换行符(CRLF)格式

Linux / Docker 使用的是:

  • LF(\n)换行

而 Windows 常见的是:

  • CRLF(\r\n)

当脚本第一行是:

#!/usr/bin/env bash\r

Linux 会把它理解成:

bash\r (一个不存在的命令)

于是就报了这个经典错误:

env: ‘bash\r’: No such file or directory

三、如何确认是不是这个问题(可选)

可以用下面命令查看隐藏字符:

sed-n'1l'install.sh

如果看到:

#!/usr/bin/env bash\r$

那就100% 确认是 CRLF 换行符问题


四、解决办法(3 种,任选一种)

✅ 方法 1(最推荐):使用sed转换格式

sed-i's/\r$//'install.sh

然后再执行:

./install.sh

✔ 通用
✔ 不依赖额外工具
✔ Docker / Jenkins 都适用


✅ 方法 2:使用dos2unix(如果系统有)

dos2unix install.sh ./install.sh

注意:不是所有容器里都有dos2unix


✅ 方法 3:直接用 bash 执行(临时方案)

bashinstall.sh

这种方式有时能绕过 shebang 问题,但不如前两种彻底


五、为什么很容易踩这个坑?

常见原因包括:

  • Windows 浏览器中下载.sh
  • 记事本 / VS Code(CRLF)打开并保存
  • 从 Windows 主机复制脚本到 Linux / Docker
  • Jenkins 容器里直接粘贴脚本

👉 这些都会自动把 LF 转成 CRLF


六、推荐的「正确下载脚本姿势」

✅ 方式 1:直接 curl + bash(官方常用)

curl-fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh|bash

✅ 方式 2:先下载,再处理换行符

curl-o install.sh https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.shsed-i's/\r$//'install.shbashinstall.sh

七、常见误区总结(新手必看)

错误操作原因
sudo ./install.shDocker 容器里通常没有 sudo
一直chmod +x权限不是根因
以为是 bash 没装实际是换行符问题
以为 Jenkins 有 bug和 Jenkins 无关

八、一句话总结(可以直接记住)

env: 'bash\r'报错 ≠ bash 不存在
而是脚本是 Windows 格式(CRLF),
sed -i 's/\r$//' 文件名即可解决。


九、写在最后(经验建议)

Linux / Docker / Jenkins环境中:

  • .sh脚本永远只用 LF
  • 不要用 Windows 记事本编辑
  • 下载脚本尽量用curl / wget
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 16:53:37

day39模型的可视化和推理@浙大疏锦行

day39模型的可视化和推理浙大疏锦行 主要针对隐藏层神经元的个数进行了修改 # 实验 1: 原始配置 (隐藏层神经元 10) print(" 实验 1: 原始配置 (Hidden Size 10) ") model_base MLP(input_size4, hidden_size10, output_size3).to(device) time_base, acc_base,…

作者头像 李华
网站建设 2026/6/23 22:38:16

智慧校园建设三步走:选对平台是关键

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华
网站建设 2026/6/24 21:21:05

基于SpringBoot大学生就业招聘系统(毕业设计项目源码+文档)

课题摘要在高校就业工作数字化转型加速、大学生求职与企业招聘存在 “信息不对称、匹配效率低、流程管控散、数据统计难” 的痛点背景下,基于 SpringBoot 的大学生就业招聘系统构建具有重要的教育与就业服务价值:从学生层面,系统整合企业招聘…

作者头像 李华
网站建设 2026/6/25 6:57:43

基于SpringBoot的博物馆管理系统(毕业设计项目源码+文档)

课题摘要在文博行业数字化转型加速、传统博物馆管理存在 “展品管理低效、参观体验单一、客流管控滞后、文物保护数据化不足” 的痛点背景下,基于 SpringBoot 的博物馆管理系统构建具有重要的文化保护与服务价值:从展品管理层面,系统整合文物…

作者头像 李华
网站建设 2026/6/23 20:12:16

基于SpringBoot的宠物店管理系统(毕业设计项目源码+文档)

课题摘要在宠物行业规模化发展、传统宠物店管理存在 “库存管控混乱、客户服务滞后、消费记录零散、营收统计低效” 的经营痛点背景下,基于 SpringBoot 的宠物店管理系统构建具有重要的商业与用户价值:从门店运营层面,系统整合宠物用品&#…

作者头像 李华