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
相关推荐
hhhh明18 分钟前
quest2+alvr+steamvr
linux·windows·quest2
Boop_wu1 小时前
[Java EE] 计算机基础
java·服务器·前端
dqsh061 小时前
树莓派5+Ubuntu24.04 LTS CH348 / CH9344 驱动安装 保姆级教程
linux·c语言·单片机·嵌入式硬件·iot
m0_495562782 小时前
Swift的逃逸闭包
服务器·php·swift
wanhengidc2 小时前
全面了解云手机的安全性
运维·服务器·游戏·智能手机·云计算
顾安r2 小时前
11.8 脚本网页 打砖块max
服务器·前端·html·css3
menge23333 小时前
Linux DNS域名解析服务器练习
linux·运维·服务器
m0_495562783 小时前
Swift-static和class
java·服务器·swift
wsad05323 小时前
CentOS 7 更换腾讯云 yum 源及 EPEL 源
linux·centos·腾讯云
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [kernel]kallsyms
linux·笔记·学习