Unix\Linux 执行shell报错:“$‘\r‘: 未找到命令” 解决

linux执行脚本sh xxx.sh报错:$'xxx\r': 未找到命令

原因:shell脚本在Windows编写导致的换行问题: Windows 的换行符号为 CRLF(\r\n),而 Unix\Linux 为 LF(\n)。

缩写 全称 ASCII转义 说明
CR Carriage Return \r 回车
LF Linefeed \n 换行,Unix\Linux 的换行符
CRLF Carriage Return & Linefeed \r\n 回车并换行,Windows 的换行符

解决:

vim 转换为 Unix 换行

bash 复制代码
# 查看文件格式信息
$ file xxx.sh
xxx.sh: a /usr/bin/env bash\015 script, ASCII text executable, with CRLF line terminators

#-----------------------------------------------
# 转换为 Unix 格式换行
$ vim xxx.sh
:set ff=unix
:wq
#-----------------------------------------------

# 再次查看文件格式信息
$ file xxx.sh
xxx.sh: a /usr/bin/env bash script, ASCII text executable
相关推荐
云飞云共享云桌面8 分钟前
非标自动化研发成本高?云飞云共享云桌面:1台主机=10台工作站,年省数十万。
大数据·运维·服务器·人工智能·自动化·云计算·电脑
Linux运维技术栈1 小时前
生产环境Linux应用目录迁移至LVM独立分区 标准化实战方案
linux·运维·服务器·lvm·逻辑卷
feasibility.2 小时前
SSH Agent Forwarding 与 tmux 排障笔记
linux·运维·服务器·经验分享·笔记·ssh
ShawnLiaoking2 小时前
Linux 会话窗口常开
linux·运维·服务器
230万光年的思念2 小时前
向日葵远程控制ubuntu24一直显示连接中
linux
IMPYLH3 小时前
Linux 的 dir 命令
linux·运维·服务器·数据库
fanged3 小时前
操作系统番外1(Linux的测试体系)(TODO)
linux·运维·服务器
123过去5 小时前
pixiewps使用教程
linux·网络·测试工具·算法·哈希算法
H_老邪5 小时前
Linux 与 Docker 常用命令
linux·运维·服务器·docker
博语小屋5 小时前
I/O 多路转接之epoll
运维·服务器·数据库