syntaxerrornearunexpectedt-创新互联
别人写了一个shell拿过来在linux试用,执行报错如下:
武清ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!仔细查找了还是没找到错误,一直都是报syntax error near unexpected token `{
网上搜索了一下,找到了端倪,现在简单整理如下:
现在可以判断给我脚本的这位仁兄很有可能是在windows平台上编写的。使用vim -b命令查看文件内容如下:
每一行多了一个^M有木有?
那么接下来就要搞清楚这个^M是什么东东?
long long long ago ..... 老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,
因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下用Vim查看在Windows下用VC写的代码,行尾后的“^M”符号,表示的是换行符。
基本解决方法有三个:
1.用vim编辑器替换
vim -b filename
在命令模式下执行%s/^M//g进行替换
注意:上述命令行中的“^M”符,不是“^”再加上“M”,而是由“Ctrl+v”、“Ctrl+M”键生成的。
2.使用dos2unix命令进行转换
Dos2unix在有些版本的系统中默认是安装的。
在Linux中,文本文件用"\n"表示回车换行,而Windows用"\r\n"表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"\r\n"转化成"\n",unix2dos把"\n"转化成"\r\n"。
命令dos2unix和unix2dos的使用非常简单,格式为:dos2unix filename
如果想了解更多,可以查看手册。man dos2unix
3.使用文本处理工具
cat filename | tr -d "/r" > newfile 去掉^M生成一个新文件。
同样还有sed命令等,凡是可以替换的命令都是可以用来新生成一个文件的。
另外,a.在windows平台上通过notepad++工具也可以完成转换,具体参考百度经验http://jingyan.baidu.com/article/9f63fb91d014b8c8410f0e7a.html
b.在上传到linux平台过程中,可以选择上传类型为二进制,也可以避免此问题,大家可以试一下
A.
B.
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前名称:syntaxerrornearunexpectedt-创新互联
文章分享:http://pwwzsj.com/article/ddoeid.html