原因
原因是因为 shell 脚本是在 Windows 编写导致的换行问题,具体原因是 Windows 的换行符号为 CRLF
(
),而 UnixLinux 为 LF
(
),Macintosh 为(
)
名称解释
缩写 |
全称 |
ASCII转义 |
说明 |
---|---|---|---|
CR |
Carriage Return |
|
回车,Macintosh 的回车符合 |
LF |
Linefeed |
|
换行,UnixLinux 的换行符 |
CRLF |
Carriage Return & Linefeed |
|
回车并换行,Windows 的换行符 |
解决一:在windows 中解决
可以通过notepad++ 查看所有字符
双击下图红框进行修改
修改后
解决二:在unix机解决
sed -i "s/^M//g" windows.sh 或 sed -i "s/ //g" windows.sh