Shell 脚本参数传递时有 \r 换行符问题

最近用Nodepad++写Shell脚本进行参数动态传递时,发现有时候参数携带了\r换行符,编辑器里也是Shell脚本的语言。本来一看就知道是换行符的问题,偏偏有的脚本不带\r符号,有的又带,真的迷!
在这里插入图片描述

在这里插入图片描述

问题原因:

  • Unix体系里,每行结尾只有"<换行>”,即"\n";
  • Windows体系里面,每行结尾是"<换行><回 车>”,即"\n\r”。

所以当从Windows上把脚本放入Linux上后,会把"\n\r”一起带入


解决方法:

allSyncTask.sh:脚本名称,自定义

1.使用命令:

dos2unix allSyncTask.sh

找不到dos2unix命令时,安装dos2unix

yum install dos2unix
yum install unix2dos

2.去掉"\r"命令:(切记不要使用两个",不然所有带r字母的都会被替换掉

sed -i "s/\r//" allSyncTask.sh

相关文章


おすすめ

転載: blog.csdn.net/qq_25112523/article/details/109279059