首页   >   心得技巧

执行shell脚本报错“$'\r': command not found”的原因及解决方案

在测试jenkins自动部署远程tomcat时,执行在目标linux上编写好的shell脚本时出现“$'\r': command not found”,但是我仔细检查了脚本,报错对应行的位置只是一个空行,并没有问题,那么linux为什么会将一个回车的空行报错?

执行shell脚本报错“$'\r': command not found”的原因及解决方案

问题原因:

脚本是在window下编辑完成后上传到linux上执行的,win下的换行是回车符+换行符,也就是\r\n,而unix下是换行符\n,linux下不识别\r为回车符,所以导致每行的配置都多了个\r回车符。

解决方案:

1、若报错的地方改动很小,可以直接手动编辑一下;

2、文件太多,又不想一个个的改,那就安装 dos2unix 来解决(推荐此方式);

CentOS:

1、yum -y install dos2unix

2、dos2unix 文件名

Ubuntu:

1、sudo apt-get install tofrodos

2、fromdos 文件名

QQ群Ⅰ: 686430774 (已满)

QQ群Ⅱ: 718410762 (已满)

QQ群Ⅲ: 638620451

如果文章有帮到你,可以考虑请博主喝杯咖啡!

分享到:

欢迎分享本文,转载请注明出处!

作者:不忘初心

发布时间:2019-10-08

永久地址:https://www.jiweichengzhu.com/article/dfa04619534c4e7ba114c7739f64a42e

评论