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
相关推荐
XMYX-015 小时前
Linux 物理机如何区分 SSD 与 HDD ——以 DELL PERC H730 Mini 为例
linux·运维
轻松Ai享生活15 小时前
5 天学习 Linux Kernel 主要原理 | Day 3:内存管理与Swap机制
linux
轻松Ai享生活15 小时前
QAT 与 GPU 在SHA-1 运算中的优劣
linux
行思理16 小时前
linux 安全与防护,全方向讲解
linux·安全·github
tan180°16 小时前
Boost搜索引擎 查找并去重(3)
linux·c++·后端·搜索引擎
yongui4783417 小时前
CentOS系统如何查看当前内存容量
linux·运维·centos
xzq_java17 小时前
CentOS操作系统虚拟机安装以及连接工具下载和远程连接工具远程连接
linux·运维·centos
Sweety丶╮79418 小时前
【Ansible】实施 Ansible Playbook知识点
服务器·云原生·ansible
逐梦吧!旅行者18 小时前
Linux之环境变量(内容由浅入深,层层递进)
linux·运维
IOT-Power18 小时前
树莓派 Ubuntu 24.04 开机换源总结
linux·数据库·ubuntu