先說下坑爹的經歷:
如果是在windows下編輯的指令碼,到了linux下執行時會報出這樣的錯誤
/bin/bash^m:bad interpreter: no such file or directory
這時因為編碼的問題,需要進行編碼轉換。使用sudo vim ***開啟檔案,:set ff可以看到當前的格式,應該是dos,使用set ff=unix,更改其格式,然後儲存退出,就能正常的執行程式了
第一種方法:
cat -a filename
就可以看到windows下的斷元字元 ^m
要去除他,最簡單用下面的命令:
dos2unix filename
第二種方法:
sed -i 『s/^m//g' filename第三種方法:#注意:^m的輸入方式是 ctrl + v ,然後ctrl + m
#vi filename第四種方法::1,$ s/^m//g
^m 輸入方法: ctrl+v ,ctrl+m
#cat filename |tr -d 『/r' > newfile#^m 可用 /r 代替
在各作業系統下,文字檔案所使用的換行符是不一樣的。unix/linux 使用的是 0x0a(lf),早期的 mac os 使用的是0x0d(cr),後來的 os x 在更換核心後與 unix 保持一致了。但 dos/windows 一直使用 0x0d0a(crlf)作為換行符。git提供了乙個「換行符自動轉換」功能。這個功能預設處於「自動模式」,當你在簽出檔案時,它試圖將 unix 換行符(lf)替換為 windows 的換行符(crlf);當你在提交檔案時,它又試圖將 crlf 替換為 lf。git 的「換行符自動轉換」功能聽起來似乎很智慧型、很貼心,因為它試圖一方面保持倉庫內檔案的一致性(unix 風格),一方面又保證本地檔案的相容性(windows 風格)。但遺憾的是,這個功能是有 bug 的,而且在短期內都不太可能會修正。
git config --global core.autocrlf false
git config --global core.safecrlf true
含義:autocrlf
#提交時轉換為lf,檢出時轉換為crlf
git config --global core.autocrlf true
#提交時轉換為lf,檢出時不轉換
git config --global core.autocrlf input
#提交檢出均不轉換
git config --global core.autocrlf false
safecrlf
#拒絕提交包含混合換行符的檔案
git config --global core.safecrlf true
#允許提交包含混合換行符的檔案
git config --global core.safecrlf false
#提交包含混合換行符的檔案時給出警告
git config --global core.safecrlf warn
idea的設定file -> settings
editor -> code style
line separator (for new lines) ,選擇:unix and os x (\n)
對已使用windows換行符的檔案,可以使用sublime text開啟,
view->line endings,選unix,儲存;
git 換行符LF與CRLF轉換問題
在各作業系統下,文字檔案所使用的換行符是不一樣的。unix linux 使用的是 0x0a lf 早期的 mac os 使用的是0x0d cr 後來的 os x 在更換核心後與 unix 保持一致了。但 dos windows 一直使用 0x0d0a crlf 作為換行符。git提供了乙個 換行符自...
git 換行符LF與CRLF轉換問題
在各作業系統下,文字檔案所使用的換行符是不一樣的。unix linux 使用的是 0x0a lf 早期的 mac os 使用的是0x0d cr 後來的 os x 在更換核心後與 unix 保持一致了。但 dos windows 一直使用 0x0d0a crlf 作為換行符。git提供了乙個 換行符自...
git 換行符LF與CRLF轉換問題
git config global core.autocrlf false git config global core.safecrlf true 含義 autocrlf 提交時轉換為lf,檢出時轉換為crlf git config global core.autocrlf true 提交時轉換為...