Window 下 sh 文件在 Linux 转码
因为我组的server经常断网,所以我通常都在本地的sublime中写好代码,然后用sftp插件同步到server上。但是经常发生写的 sh 文件在server 运行出错的情况。
经过查错发现,主要是因为在win下的sublime编辑出的sh 文件,其编码是win的。而Linux上只能运行编码为unix的sh脚本。因此需要对 sh 文件进行编码转换。(注意,目前我只发现了 sh 文件可能需要进行编码转换,可能是因为其它脚本都是由对应解释器(例如 Python)来执行的,而只有 sh 是由系统shell来执行的)
本文主要采用 vim 来进行转码操作
# vim 打开 sh 文件
vim ./test.sh
# 查看文件编码
# vim 命令行的模式下输入
: set ff
# 回车显示 fileformat=dos,代表这是 Win 的编码
# 修改编码
# vim 命令行的模式下输入
: set ff=unix
# 查看当前编码
: set ff
# 回车显示 fileformat=unix,代表这是 unix 的编码(适用于Linux)
# 保存退出
:wq