(3)vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。
在开发过程中,有时候不小心将Windows本地创建的shell脚本(以 .sh 结尾的脚本),传到linux系统中,通过 vi或者view命令查看文件时,发现在末尾发现出现了很多^M字符。
^M 是什么?这个字符就是换行符。是由于跨平台解析的原因。因为window和Linux下对行尾的换行的定义不同
Windows: \r\n
Linux/Unix: \n
Mac: \r
临时解决方案1:
如果需要从表面上修改,只需使用替换命令就能将该字符给取消;#:%s/^M//g
临时解决方案2:
在linux上创建一个文件,名称为 xxx.sh,将这个问价下载到本地,然后将脚本内容粘贴进去,重新上传到linux上打开查看。
补:解决方法
如果需要转换,我们只需要转换文件格式即可。你可以选择直接在服务器上调整。包括如下三种方式。
(1)使用linux命令dos2unix filename,直接把文件转换为unix格式
(2)使用sed命令sed -i "s/\r//" filename 或者 sed -i "s/^M//" filename直接替换结尾符为unix格式
(3)vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。
推荐第3 种。