最近用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
相关文章
- DataX | 在Liunx上安装和使用.
- DataX | MySQL多表全量同步和多表定时增量同步.
- DataX踩坑1 | 连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port.
- DataX踩坑2 | 定时任务crontab不执行或报错:/bin/sh: java: command not found.
欢迎关注公众号:慌途L
后面会慢慢将文章迁移至公众号,也是方便在没有电脑的情况下可以进行翻阅,更新的话会两边同时更新,大家不用担心!