一、发现问题
(1)在Windows 的编辑器编写Shell脚本。
(2)拷贝到Linux 去执行,执行失败。
(3)通过cat -A net.sh,发现脚本文件多了很多^M 字符。
二、解决问题
(1)方法1,在Linux直接修改
sed -i "s/\r//" 文件名
(2)方法2,在Windows使用notepad++转换
首先-显示所有字符
视图-->显示符合-->显示所有字符
底部右键选择,“转换为Unix(LF)”
转换成功,CRLF变为LF
三、总结问题
(1)在Windows编辑Shell脚本,会在行末尾显示^M。这是不同的操作系统对换行处理的结果。
四、补充
如果出现M-oM-;M-?,则重新新建一个脚本文件,把除 M-oM-;M-? 这行外的所有内容拷贝到新脚本文件上,之后补上第一行内容即可。