DOS和UNIX转换
问题描述:
在windows下编辑的shell脚本,上传到linux执行失败

分析:
Windows和Linux平台表示回车的方法不一样
解决办法:
使用dos2unix
一般Linux发行版中都带有这个小工具,只能把DOS转换为UNIX文件,命令如下:
# dos2unix keep.sh
上面的命令会去掉行尾的^M符号。
使用vim
使用方法如下:
# vim keep.sh
DOS转UNIX::setfileformat=unix
UNIX转DOS::setfileformat=dos
:wq
如果你需要把Unix文本文件转换为DOS文本文件,输入:setfileformat=dos,你也可以使用ff来替代fileformat,此时可以输入:set ff=dos。
注:为了能让vim可以自动识别DOS和UNIX文本文件格式,可以在.vimrc(Linux)或_vimrc(Windows)配置文件中加入如下一行设置:
setfileformats=dos,unix
设置完成后,使用vim打开DOS文本文件就不会显示^M字符了。
使用perl
Perl是相当直接,你添加或删除掉文件每行结尾的CR字符。
DOS转UNIX:perl -p -e 's/\r$//' <keep.sh> unixfile.sh
UNIX转DOS:perl -p -e 's/$/\r/' <unixfile.sh> keep.sh
浙公网安备 33010602011771号