原因
原因是因為 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