這兩天做docker鏡像,發現打包進鏡像的sh腳本運行不起來,進入鏡像后vi打開sh腳本,發現每一行后邊都多了個^M字符,后來一查詢原來是win10下使用notepad++寫腳本,沒有轉換成正確的unix格式造成的,記錄一下解決辦法,在win下編寫sh腳本時都要注意一下。
1、首先在編碼項中,采用UTF-8-BOM編碼
2、編輯->文檔格式轉換->轉為Unix
3、如果不想在win系統里轉,也可以在linux服務上運行如下命令來進行轉換
linux中sh腳本去掉^M的方法
dos2unix filename