syntax error near unexpected token in 解决方案

目录

一、引言:

二、问题解决:

三、总结:


一、引言:

近来在使用 shell 脚本时,从服务器上把脚本文件拿下来,本地修改完之后上传至服务器,运行时出现了如下的错误信息:

 最终排查之后,发现是系统兼容性问题,现就解决方案做出说明:

二、问题解决:

首先查看文件格式,使用 notepad++ 打开文件,依次选择视图 -> 显示符号 -> 显示行尾符,然后就看到了预料到的,所有的回车换行都是 Windows 下的 CR LF:

得知是 Linux 和 Windows 下的回车换行符不兼容的问题。所以,剩下的就是将 Windows 下面的 CR LF,转换为 Linux 下面的 LF 即可,如下:

依次选择编辑 -> 文档格式转换 -> 转换为 UNIX 格式:

 即可将所有的 CR LF,转换为 LF:

 保存之后再运行此 shell 脚本,即可正常运行了。

三、总结:

linux/cygwin 下面的 shell 脚本出现错误:syntax error near unexpected token `$’do\r”,是由于该脚本文件是在 Windows 环境下创建编辑的,其默认是将所有的回车变成:CR 加上 LF,而Linux/Unix 中的回车只是 LF,所以导致解释器不认,出现此错误。

所以解决办法就是,将所有的 CRLF 转换为 LF 即可,转换的方法有多种,比如用 dos2unix,或者直接使用 notepad++ 帮我们转换,都是可以的。

环境兼容性问题虽然是小事儿,但是也得重视哦

如果出现文章之外的问题,可以私信笔者,欢迎批评指正~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

£繁星丶春水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值