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

浙公网安备 33010602011771号