執行 shell 指令碼 \r 問題解決

雪花飄發表於2019-02-14

最近在寫用 shell 寫構建指令碼模板build.sh,開發測試再根據自己需要修改,因為我使用的是mac 來寫,所以一直沒有出現問題,但交付給測試去用的時候,測試給我拋了個異常:
file
納悶,我寫的程式碼怎麼會有 bug 呢!!!
一看應該是 windows 的回車換行跟 linux 換行差異,百度了一下,的確有很多類似問題,在 windows 下編輯 shell 檔案,輸入的回車是 "\r\n" ,導致在 linux 下執行 shell 指令碼時報這個 \r 的錯。
怎麼辦?想辦法解決。
讓開發或測試自己想辦法轉化或者在linux環境編輯這個 build.sh 很明顯不現實,在伺服器安裝 dos2unix 來轉化 build.sh 我又要在主從節點分別重新構建映象,麻煩。想了想用替換的方式看能否實現,百度一下,使用 sed -i 's/\r//' 來處理 build.sh 後再執行,即 sed -i 's/\r//' build.sh && bash build.sh,完美解決問題,大功告成!!!

雪花飄

相關文章