Centos7下执行shell脚本报错如下 [root@ip---- ~]# sh install_zabbix_agent.sh install_zabbix_agent.: $'\r': command not found install_zabbix_agent.: $'\r': command not found install_zabbix_agent.: $'\r': command not found install_zabbix_agent.: syntax error near
执行shell脚本如果报如下错误: syntax error near unexpected token `$'\r'' syntax error: unexpected end of file $'\r': command not found 可能原因是写代码是编辑环境是window,或者Linux下的非Linux编码, 可以执行:dos2unix filename 来解决.
在linux中执行脚本时出错 $'\r': command not found 错误原因是在脚本中有空行,如果脚本是在Windows下进行编辑之后上传到linux上去执行的话,就会出现这个问题. 因为win下的空行是/r/n,但是linux下是/n,没有识别/r,所以会导致上述的报错,这个属于脚本编码的问题. 建议: 在服务器中编写相关脚本,可以有效避免这个问题.
是linux无法解析$'\r'.这其实是windows与linux系统的差异导致的. 因为linux上的换行符为\n,而windows上的换行符为\r\n.所以脚本到linux上就无法解析了. 通常的处理办法主要有2种: 处理办法1 set ff=unix vi hello.sh ### Esc进入命令行运行模式 ### : set ff=unix 处理办法2 dos2unix dos2unix hello.sh ### 如果报command not found 是因为你没有安装,安装dos2u