shell脚本在windows下和linux下换行符不同的问题,shell脚本每行后面多了一个^M的原因和解决办法

本文介绍了如何检查及解决Linux与Windows系统间因换行符差异导致的脚本执行错误。通过cat-A或vim-b命令可以查看文件中是否包含Windows换行符^M。解决方法是在vim中使用:%s/^M//g命令替换换行符。了解不同系统的换行符标准(Windows的' ',Linux和Mac的' ')对于跨平台协作至关重要。

可以通过cat -A xxx.sh 查看是否包含windows下的换行符

cat -A xxx.sh

亦可以通过vim -b xxx.sh打开文件查看是否包含windows下的换行符

vim -b xxx.sh

如果使用的是windows电脑,可以通过zip等其他格式的压缩文件进行上传下载,亦可以避免windows和linux不兼容换行符的问题

当执行在Windows系统下修改过的脚本时,会提示存在^M的错误,但是在Linux下直接使用vim打开并不存在。此时可以使用vim -b来打开脚本文件,就可以发现每行的末尾都存在^M。

  造成这样的原因是不同的系统使用了不同的换行符。在Windows下文本文件的每一行结尾都有一个回车(' ')和换行符(' ');在Linux下文本文件的每一行结尾都有一个回车(' ');在Mac下文本文件的每一行结尾都有一个换行符(' ')。

  所以,当在Linux使用vim打开Windows编辑过的脚本时,^M代表的就是换行符(' ')。

  解决办法也很简单就是使用vim -b打开脚本文件,然后使用在交互模式下输入替换命令:%s/^M//g(注意:^M是由<Ctrl>+<v>和<Ctrl>+<m>打出来的),最后在交互模式下输入保存退出命令:wq即可。

:%s/^M//g

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值