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