Window 下 sh 文件在 Linux 轉(zhuǎn)碼
? 因?yàn)槲医M的server經(jīng)常斷網(wǎng)赞警,所以我通常都在本地的sublime中寫好代碼凝赛,然后用sftp插件同步到server上。但是經(jīng)常發(fā)生寫的 sh 文件在server 運(yùn)行出錯(cuò)的情況。
? 經(jīng)過(guò)查錯(cuò)發(fā)現(xiàn)蛹锰,主要是因?yàn)樵趙in下的sublime編輯出的sh 文件,其編碼是win的趋厉。而Linux上只能運(yùn)行編碼為unix的sh腳本喝噪。因此需要對(duì) sh 文件進(jìn)行編碼轉(zhuǎn)換。(注意氛谜,目前我只發(fā)現(xiàn)了 sh 文件可能需要進(jìn)行編碼轉(zhuǎn)換掏觉,可能是因?yàn)槠渌_本都是由對(duì)應(yīng)解釋器(例如 Python)來(lái)執(zhí)行的,而只有 sh 是由系統(tǒng)shell來(lái)執(zhí)行的)
? 本文主要采用 vim 來(lái)進(jìn)行轉(zhuǎn)碼操作
# vim 打開 sh 文件
vim ./test.sh
# 查看文件編碼
# vim 命令行的模式下輸入
: set ff
# 回車顯示 fileformat=dos值漫,代表這是 Win 的編碼
# 修改編碼
# vim 命令行的模式下輸入
: set ff=unix
# 查看當(dāng)前編碼
: set ff
# 回車顯示 fileformat=unix澳腹,代表這是 unix 的編碼(適用于Linux)
# 保存退出
:wq