Window 下 sh 文件在 Linux 轉(zhuǎn)碼
? 因為我組的server經(jīng)常斷網(wǎng),所以我通常都在本地的sublime中寫好代碼,然后用sftp插件同步到server上。但是經(jīng)常發(fā)生寫的 sh 文件在server 運行出錯的情況。
? 經(jīng)過查錯發(fā)現(xiàn),主要是因為在win下的sublime編輯出的sh 文件,其編碼是win的。而Linux上只能運行編碼為unix的sh腳本。因此需要對 sh 文件進行編碼轉(zhuǎn)換。(注意,目前我只發(fā)現(xiàn)了 sh 文件可能需要進行編碼轉(zhuǎn)換,可能是因為其它腳本都是由對應(yīng)解釋器(例如 Python)來執(zhí)行的,而只有 sh 是由系統(tǒng)shell來執(zhí)行的)
? 本文主要采用 vim 來進行轉(zhuǎn)碼操作
# vim 打開 sh 文件
vim ./test.sh
# 查看文件編碼
# vim 命令行的模式下輸入
: set ff
# 回車顯示 fileformat=dos,代表這是 Win 的編碼
# 修改編碼
# vim 命令行的模式下輸入
: set ff=unix
# 查看當前編碼
: set ff
# 回車顯示 fileformat=unix,代表這是 unix 的編碼(適用于Linux)
# 保存退出
:wq