Linux的shell脚本换行符引起的unexpected syntax errror: ‘最简单方法
2016-12-20 01:17
429 查看
我们刚开始编写shell脚本,会遇到写一个非常简单的shell脚本总是报错,明明写的没问题,最经典的报错就是标题那个,什么也看不出来,就告诉你是哪行报错,给你个 ‘做提示。
其实这种错误很多是由于换行符造成的,因为IOS,UNIX/Linux,windows/Dos,他们对换行符定义不一样,就会造成我读你的读不出来,你读我的读不出来的情况。
windows下面换行符是\r\n,UNIX下面是只有\n。txt类型的文件只支持
\r\n,但是我是看了一些别人的博客,很多工具都可以转换这个换行符。甚至貌似word也可以,这个我没试过,不确定这个。但是常见的编程工具都可以。
我们常见的doc\windows下面用UNIX和苹果的Mac文件会变成一行。在UNIX和苹果的Mac用doc\windows文件打开会出现^M,这个你在vi下面看最直观,以下是我搜的关于三个主流系统换行符区别。
\r是回车符,\n是换行符,各个系统的换行标志:
win 用 \r\n
linux/unix 用 \n
Mac OS 用 \r
解决这种问题,网上有很多方法,基本是去换行符的但是比较麻烦。我们目的是快速完成脚本不用特别麻烦,可以采用一些工具来帮我们解决这个问题:比如我这个利用notepad++工具来解决这个换行符问题:看最下面一行的显示,显示的是windows/dos,我们点击编辑再点击文档格式转换转为UNIX格式就可以,随便的编写shell脚本,其他的工具也是可以,目的就是将这个文档转换为UNIX的,这样我们就可以正常使用了。
其实这种错误很多是由于换行符造成的,因为IOS,UNIX/Linux,windows/Dos,他们对换行符定义不一样,就会造成我读你的读不出来,你读我的读不出来的情况。
windows下面换行符是\r\n,UNIX下面是只有\n。txt类型的文件只支持
\r\n,但是我是看了一些别人的博客,很多工具都可以转换这个换行符。甚至貌似word也可以,这个我没试过,不确定这个。但是常见的编程工具都可以。
我们常见的doc\windows下面用UNIX和苹果的Mac文件会变成一行。在UNIX和苹果的Mac用doc\windows文件打开会出现^M,这个你在vi下面看最直观,以下是我搜的关于三个主流系统换行符区别。
\r是回车符,\n是换行符,各个系统的换行标志:
win 用 \r\n
linux/unix 用 \n
Mac OS 用 \r
解决这种问题,网上有很多方法,基本是去换行符的但是比较麻烦。我们目的是快速完成脚本不用特别麻烦,可以采用一些工具来帮我们解决这个问题:比如我这个利用notepad++工具来解决这个换行符问题:看最下面一行的显示,显示的是windows/dos,我们点击编辑再点击文档格式转换转为UNIX格式就可以,随便的编写shell脚本,其他的工具也是可以,目的就是将这个文档转换为UNIX的,这样我们就可以正常使用了。
相关文章推荐
- Linux脚本(shell)编程(一) 简单入门HelloWorld
- Linux简单处理CC攻击shell脚本
- Linux的简单shell脚本中修改文件操作
- linux下shell脚本执行方法及exec和source命令
- shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)
- 超级简单的 linux网站备份脚本 shell
- Linux脚本(shell)编程(一) 简单入门HelloWorld
- 几种linux脚本的简单执行方法
- 如何使windows下的bat文件调用linux下的shell脚本的方法
- shell “syntax error near unexpected token '$'\r''” 错误解决方法
- linux基础之简单shell脚本编写
- Linux脚本(shell)编程(一) 简单入门HelloWorld
- Linux简单处理CC攻击shell脚本
- Linux的简单shell脚本中修改文件操作
- Linux下C语言引用shell脚本的简单例子
- windows下编写的Shell脚本在Linux下运行错误的解决方法
- 在linux应用程序使用system函数执行简单的shell交互命令的方法
- linux下shell脚本执行方法及exec和source命令
- Linux的简单shell脚本中修改文件操作
- shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)