Zavier's Blog

解决shell脚本执行时提示非法字符^M的办法

最近在执行自己编写的shell脚本时老师遇到bash报错,提示脚本中含有^M的非法字符,而我cat以及vi进去却看不到任何^M字符,查阅了很多相关资料,才想起来,因为这个shell脚本是我在windows下使用notepad++编写的,而在windows里面,编辑器对文末换行符号的处理是使用^M字符来代表,这与Linux是不同的,所以当脚本被传到linux里面就会报错,为了去除这个字符,我总结出了两个比较常用的办法:


第一种办法:使用vi编辑脚本文件,按esc进入命令行,输入:set ff?就可以看到,当前文本的格式为DOS,使用:set ff=unix命令即可将其改为unix格式,然后:wq保存即可


第二种方法:使用sed来替换当中的^M字符

sed -i 's/^M//g' 脚本路径


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright © 2017-2023 Zavier的博客.网站地图