解决 Linux shell 脚本文件出现 ^M 字符的问题(亲自验证)

文章讲述了在Windows编辑的Shell脚本在Linux上执行失败,原因在于Windows的CRLF换行被Linux识别为额外字符。给出了两种解决方案:在Linux中使用sed替换CR,以及在Windows中使用Notepad++将所有字符显示并转换为LF。
摘要由CSDN通过智能技术生成

一、发现问题

(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-? 这行外的所有内容拷贝到新脚本文件上,之后补上第一行内容即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值