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
相关推荐
itachi-uchiha几秒前
Linux上的rm和srm 命令
linux·运维·服务器
Waitccy13 分钟前
Linux 系统安全基线检查:入侵防范测试标准与漏洞修复方法
linux·运维·网络·安全·系统安全·等保
ShiYQ@师1 小时前
Ubuntu 18.04.6下OpenSSL与OpenSSH版本升级
linux·ubuntu
遇见火星1 小时前
Ansible模块——从控制节点向目标主机复制文件!
java·服务器·ansible
带鱼吃猫1 小时前
Linux系统:文件系统前言,详解CHS&LBA地址
linux·运维·服务器
香饽饽~、1 小时前
函数式方法的实现(JDK8+)
java·服务器
默默提升实验室2 小时前
Linux 系统如何挂载U盘
linux·运维·服务器
mahuifa2 小时前
python实现usb热插拔检测(linux)
linux·服务器·python
Lw老王要学习2 小时前
Linux架构篇、第五章git2.49.0部署与使用
linux·运维·git·云计算·it
啊吧怪不啊吧3 小时前
Linux之初见进程
linux·centos