背景
將linux通過samba服務映射到windows平臺,在win平臺下建立一個腳本,然後切換到linux下執行,報錯$’\r’: command not found。
原因
win平臺下的換行是:回車符 + 換行符,也就是\r\n。unix下是換行符\n。linux下不識別\r爲回車符,所以導致每行的配置都多了個\r,因此是腳本編碼的問題。
解決
(1)在linux上執行$ dos2unix xx.sh,再次執行腳本,報錯消失;
(2)在linux下用vim打開,強制保存爲unix格式:
vim test.sh
:set ff?
// 顯示dos的話
:set ff=unix
:wq