本地写的Bash脚本,Linux端运行报错:/bin/bash^M: bad interpreter: No such file or directory

背景

在本地写了个Bash Shell脚本,但上传到Linux端后加完权限执行时报错:

(脚本名:script.sh

-bash: ./script.sh: /bin/bash^M: bad interpreter: No such file or directory

分析

这个错误通常是由于脚本文件的行尾符格式不正确引起的。(大概率,解决了相应可能性后成功

Windows 系统使用的行尾符是 CRLF(```\r\n),而在 Unix/Linux 系统上使用的是 LF(\\n```)。

解决

① dos2unix 工具

可以使用 dos2unix 工具将脚本的行尾符转换为 Unix 格式。在终端中执行以下命令:

dos2unix script.sh

这将删除行尾的 \r,确保脚本在 Unix/Linux 系统上正确运行。

tr 命令 (亲测有效)

如果没有安装 dos2unix,可以尝试使用 tr 命令:

tr -d '\r' < script.sh > script_unix.sh

chmod +x script_unix.sh

./script_unix.sh

这将创建一个新的 script_unix.sh 文件,其中行尾符已经被转换,然后给予执行权限并执行。

神奇之处在于:对比两个文件内容,完全一致(这里没想通,也不太清楚原因,如果有大神看见了这篇文章,请不吝赐教!我也会随时更正本文有出入的猜想~)

相关推荐
云深处@5 小时前
【项目一】高并发内存池
java·开发语言
hj2862515 小时前
Linux基础知识day06
linux·运维·服务器
阿里嘎多学长5 小时前
2026-05-04 GitHub 热点项目精选
开发语言·程序员·github·代码托管
山峰哥5 小时前
SQL性能提升20倍的秘密:这些优化技巧让DBA都惊叹
开发语言·数据库·sql·编辑器·深度优先·宽度优先
2zcode5 小时前
基于MATLAB的家用场景下扫地机器人路径规划研究设计
开发语言·matlab·机器人
Shadow(⊙o⊙)5 小时前
linux基础指令2.0
linux·运维·服务器·学习·apache
书源丶5 小时前
三十九、Java 枚举——固定常量的「安全卫士」
java·开发语言
代码中介商5 小时前
Linux TCP/UDP 网络编程完全指南:从基础到实践
linux·网络·tcp/ip
上弦月-编程6 小时前
高效编程利器:转移表技术解析
c语言·开发语言·数据结构·算法·排序算法
嵌入式×边缘AI:打怪升级日志6 小时前
嵌入式 Linux V4L2 摄像头采集编程(五):MMAP + 亮度实时控制(附完整代码与面试题)
linux·运维·服务器