原因

执行 shell脚本报错:

行4: 未预期的符号 `$’\r’’ 附近有语法错误

是从window复制文件到linux出现格式问题无法解析的

解决办法

安装 yum install -y dos2unix

[root@zjj101 soft]# yum install -y dos2unix
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.bfsu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 dos2unix.x86_64.0.6.0.3-7.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

======================================================================================================================
Package 架构 版本 源 大小
======================================================================================================================
正在安装:
dos2unix x86_64 6.0.3-7.el7 base 74 k

事务概要
======================================================================================================================
安装 1 软件包

总下载量:74 k
安装大小:190 k
Downloading packages:
dos2unix-6.0.3-7.el7.x86_64.rpm | 74 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : dos2unix-6.0.3-7.el7.x86_64 1/1
验证中 : dos2unix-6.0.3-7.el7.x86_64 1/1

已安装:
dos2unix.x86_64 0:6.0.3-7.el7

完毕!

对文件进行转码
我对什么文件转码,就 dos2unix 文件名,比如说 我对xcall转码,就dos2unix xcall 就可以了

[root@zjj101 soft]# ls
data demo docker hadoop-2.7.2 hive-1.2.1 movie_info.txt myconf sortby-result tmp xcall xsync
[root@zjj101 soft]# dos2unix xcall
dos2unix: converting file xcall to Unix format ...

注意

如果这个文件你又从windows复制了新的东西进来,如果运行 shell脚本又提示未预期的符号 `$’\r’’ 附近有语法错误这个东西,那么再执行一次 上面的命令, 也就是 dos2unix xxxxxx命令 再次对xxxxxx文件进行转码