执行 shell 脚本 \r 问题解决
最近在写用 shell 写构建脚本模板build.sh,开发测试再根据自己需要修改,因为我使用的是mac 来写,所以一直没有出现问题,但交付给测试去用的时候,测试给我抛了个异常:
纳闷,我写的代码怎么会有 bug 呢!!!
一看应该是 windows 的回车换行跟 linux 换行差异,百度了一下,的确有很多类似问题,在 windows 下编辑 shell 文件,输入的回车是 "\r\n" ,导致在 linux 下执行 shell 脚本时报这个 \r 的错。
怎么办?想办法解决。
让开发或测试自己想办法转化或者在linux环境编辑这个 build.sh 很明显不现实,在服务器安装 dos2unix 来转化 build.sh 我又要在主从节点分别重新构建镜像,麻烦。想了想用替换的方式看能否实现,百度一下,使用 sed -i 's/\r//'
来处理 build.sh 后再执行,即 sed -i 's/\r//' build.sh && bash build.sh
,完美解决问题,大功告成!!!
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: