原 在Windows下写的shell脚本由于换行符问题导致执行报错报错syntax error unexpected end of file
现象
1 2 3 4 5 6 | [root@oe1 soft]# sh install_pg.sh 16.3 install_pg.sh: line 2: $'\r': command not found install_pg.sh: line 12: $'\r': command not found install_pg.sh: line 13: $'\r': command not found install_pg.sh: line 14: $'\r': command not found install_pg.sh: line 374: syntax error: unexpected end of file |
分析
这个错误信息表明你的 install_pg.sh
脚本中包含了 Windows 风格的换行符(\r
),这会导致在 Linux 中执行时出现问题。
以下是一些步骤来解决这个问题:
检查换行符:
使用cat -v
命令查看文件内容,查看是否有^M
(代表\r
)字符:1cat -v install_pg.sh转换文件格式:
可以使用dos2unix
工具将文件格式从 Windows 转换为 Unix:1dos2unix install_pg.sh本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!