關於操作系統換行符(CRLF)
Dos與Linux換行符不同,利用cat –A 來觀察Dos和Linux建立的文件格式。
(這裏有一個美元符號沒有顯示出來,不知道問什麼這裏不支持這種格式),稱之爲CR與LF兩個符號。而在Linux操作系統中,僅有LF($)這個換行符,這個換行符對於Linux系統的影響很大。
由於換行符導致的shell無法執行情況:
在開始執行Linux命令時,判斷依據是Enter,而Linux的Enter爲LF符號,由於Dos的換行符是CRLF,就多了一個^M符號,在這種情況下,如果執行一個Shell腳本,將可能造成程序無法執行的情況。
解決方式:
dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]
-k:保留該文件原來的mtime格式
-n:保留原來的文件,將轉換後的內容輸出到新文件
操作系統可能未安裝此命令。
使用VI編輯器解決換行符問題:
使用VI編輯器命令模式:
set fileformat=unix
set fileformat=dos
項目中實際遇到的坑:
1、部署全量版本時,打出來的全量包中包含的啓動腳本因爲Git版本管理,文件換行符全部爲CRLF,導致的啓動腳本啓動不生效。