換行符CRLF導致的問題

關於操作系統換行符(CRLF)

Dos與Linux換行符不同,利用cat –A 來觀察Dos和Linux建立的文件格式。
Dos使M (這裏有一個美元符號沒有顯示出來,不知道問什麼這裏不支持這種格式),稱之爲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,導致的啓動腳本啓動不生效。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章