Linux运行shell脚本时报错"syntax error near unexpected token `$'\r''

本文介绍了解决在Linux环境下运行Shell脚本时遇到的语法错误问题,特别是因在Windows环境中编辑脚本导致的回车符或TAB符不兼容问题。提供了三种解决方案:通过PyCharm、UltraEdit或Linux的sed命令进行字符格式转换。

Linux运行shell脚本时,常常会发生syntax error near unexpected token `$'\r''或者syntax error: unexpected end of file等,诸如此类的报错信息出现的原因是因为在编写脚本内容时,在windows上操作,一些回车符或TAB符在Linux系统中是识别不了的。

当出现这类问题时,可以通过vi/vim 加-b参数可以看出文件中的回车符是否正常

# vim -b test.sh

在文件中,如果是Windows的字符会显示为 ' ^M '

以下为转换的三种方式,任选其一即可:

1、通过pycharm转换

将脚本文件通过pycharm软件打开,CTRL+A 全选,然后选择CRLF  --> LF-Unix and OS X(\n)

之后再将文本全选复制粘贴到Linux系统上即可

2、通过UltraEdit(UE)转换

将脚本文件通过UltraEdit(UE)软件打开,右键文件选择转换 --> DOS到UNIX(D)

转换之后就可以直接将文件保存拖拽到Linux上或者直接复制粘贴到Linux文件中

注意:这里用到的版本是UltraEdit 19,可能因为版本不通,转换功能键的位置不同,若不在上图所示的位置中,可以尝试选择主菜单(最上面的导航条)中的 文件-->转换

3、通过Linux转换

这里可以直接使用sed命令进行替换,命令如下:

# sed -i 's/\r//g' test.sh

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值