windows换行符导致的异常( $‘\r‘: command not found 异常)
【摘要】 记录一次错误
一、错误产生原因
在执行脚本时出现,$’\r’: command not found 异常。比如
这个异常说的时,脚本中有一个命令\r没有找到。可你打开脚本,却并没有发现什么\r。
其实这个\r是来自于换行符。正常情况是无法看见的,也不能通过删除键直接删除。,windows下的换行符是\n\r,而Linux下的换行符是\n;
如果你的脚本文件是在windows下编写的,直接上传到linux系统去运行,就会报这个错误。因为linux换行后会把\n继续当作一条命令去执行。
二、几种解决方法
- 在服务器端编写脚本
如果直接在linux下编写脚本,当敲换行符时,默认就是\r,就不会有这个问题。 - 删除脚本中的\r
不像字符可以简单的删除,对应特殊字符,可以使用sed命令,将脚本文件中我们看不见的\r删除的。比如sed -i 's/\r//' *.sh
- 在windows编写脚本时,手动配置换行符按照Linux的规则
使用IDEA举例,在IDEA右下角,有这个符号,如下
点击它,选择LF,设置\n为换行符,这里我是已经设置好了的,你的可能默认是CRLF。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)