從windows到linux的shell腳本編碼和格式問題
異常問題 :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 #修改模式 :set ff=unix #保存 :wq
1、設置模式
#查看模式,查看當前文本的模式類型,一般為dos,如果是dos需要修改為unix,否則linux運行文件錯誤 :set ff #修改模式 :set ff=unix #保存 :wq
2、查詢編碼
#查詢編碼
:set fileencoding
3、轉換編碼
#轉換當前文本的編碼為指定的編碼,這里的“編碼”常見為gbk utf-8 big5 cp936 #設置編碼 :set fenc=編碼 #比如下面的,注意要:w保存一下, #設置UTF-8 :set fenc=utf-8 #保存 :wq!
4、顯示指定編碼
#以指定的編碼顯示文本,但不保存到文件中。 #這里的“編碼”常見為gbk utf-8 big5 cp936 :set enc=編碼 #比如: :set enc=utf-8
:%s/^M//g 這里是如果文本里面有^M結尾的話用此命令。