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

原因

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

名称解释

缩写

全称

ASCII转义

说明

CR

Carriage Return

\r

回车,Macintosh 的回车符合

LF

Linefeed

\n

换行,Unix\Linux 的换行符

CRLF

Carriage Return & Linefeed

\r\n

回车并换行,Windows 的换行符

解决一:在windows 中解决

可以通过notepad++ 查看所有字符

 双击下图红框进行修改

 修改后

 解决二:在unix机解决

sed -i "s/^M//g" windows.sh
或
sed -i "s/\r//g" windows.sh

 

 

posted @ 2021-09-17 17:20  渊渟岳  阅读(444)  评论(0编辑  收藏  举报