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

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM