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

原因

执行 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文件进行转码

猜你喜欢

转载自blog.csdn.net/qq_41489540/article/details/109094955