從windows到linux的shell腳本編碼和格式問題
從windows到Linux的shell腳本編碼和格式問題
1、異常問題 :set ff=unix
- 啟動腳本在啟動時報錯比如執行sh start.sh,時會報Command not found等等的錯誤,
因為我們在windows編寫或修改后的腳本是dos編碼,而正常的在Linux系統中執行的是unix編碼,在寫shell腳本的時候,在windows的上開發后,上傳到服務器,可能會有文件格式不正確,通過:set ff unix可以將dos格式設置為unix下的文件格式,
解決方法:則在配置文件中非編輯模式中輸入:
ff是fileencoding的簡寫,如下ff也可以寫成fileencoding
:set ff=unix
:wq
2、查詢編碼 :set fileencoding
:set fileencoding
3、轉換編碼 :set fenc=utf-8
轉換當前文本的編碼為指定的編碼,這里的“編碼”常見為gbk utf-8 big5 cp936
:set fenc=編碼 #比如下面的,注意要:w保存一下,
:set fenc=utf-8
:w
4、顯示指定編碼 :set enc=utf-8
以指定的編碼顯示文本,但不保存到文件中。
這里的“編碼”常見為gbk utf-8 big5 cp936
:set enc=編碼 #比如:
:set enc=utf-8
5、查看模式 :set ff
查看當前文本的模式類型,一般為dos,unix
:set ff
6、設置模式 :set ff=unix
:set ff=unix
或
:set ff=dos
:w
:%s/^M//g 這里是如果文本里面有^M結尾的話用此命令。