shell if判断语句 报错:syntax error near unexpected token `elif'
2015-01-14 17:41
661 查看
转载:http://blog.sina.com.cn/s/blog_695ef52801018f09.html
在xshell下,用notepad++写了个简单的shell脚本,内容如下:
【解决过程】
1.去notepad++中,视图->显示符号->显示所有符号,然后就看到了预料到的,所有的回车换行都是windows的CR LF:
得知是Linux和windows下的回车换行符不兼容的问题。
所以,剩下的就是去将windows下面的CR LF,转换为Linux下面的LF,即可。
此处,不需要再麻烦地去用其他dos2unix等工具了,notepad++就可以帮忙搞定:
编辑->档案格式转换->转换为UNIX格式:
即可将所有的 CR LF,转换为LF:
所以,越加发现notepad++的强大之处了。
然后再运行此shell脚本,即可正常运行了。
【总结】
linux/cygwin下面的shell脚本出现错误:
syntax error near unexpected token `elif'
是由于该脚本文件是在windows环境下创建编辑的,其默认是将所有的回车变成:
CR加上 LF,而Linux/Unix中的回车只是LF,所以导致解释器不认,出现此错误。
解决办法就是,将所有的CRLF转换为LF即可。
转换的方法有多种,比如用dos2unix,或用此处的notepad++帮我们转换,都可以。
在xshell下,用notepad++写了个简单的shell脚本,内容如下:
#!/bin/bash if [ "X$force" = "X1" ]; then echo 1 elif [ "X$force" = "X2" ]; then echo 2 elif [ "X$force" = "X3" ]; then echo 3 else echo 4 fi运行报错:syntax error near unexpected token `elif'
【解决过程】
1.去notepad++中,视图->显示符号->显示所有符号,然后就看到了预料到的,所有的回车换行都是windows的CR LF:
得知是Linux和windows下的回车换行符不兼容的问题。
所以,剩下的就是去将windows下面的CR LF,转换为Linux下面的LF,即可。
此处,不需要再麻烦地去用其他dos2unix等工具了,notepad++就可以帮忙搞定:
编辑->档案格式转换->转换为UNIX格式:
即可将所有的 CR LF,转换为LF:
所以,越加发现notepad++的强大之处了。
然后再运行此shell脚本,即可正常运行了。
【总结】
linux/cygwin下面的shell脚本出现错误:
syntax error near unexpected token `elif'
是由于该脚本文件是在windows环境下创建编辑的,其默认是将所有的回车变成:
CR加上 LF,而Linux/Unix中的回车只是LF,所以导致解释器不认,出现此错误。
解决办法就是,将所有的CRLF转换为LF即可。
转换的方法有多种,比如用dos2unix,或用此处的notepad++帮我们转换,都可以。
相关文章推荐
- linux--shell错误:syntax error near unexpected token ‘('
- shell script中的syntax error near unexpected token `then' 问题
- 交叉编译libupnp,make时提示libtool: eval: line 944: syntax error near unexpected token `|'的解决办法
- repo error : line 1:syntax error near unexpected token 'newline'
- test.sh: line 8: syntax error near unexpected token `fi'
- 测试sqlplus连接遇到错误 syntax error near unexpected token `('
- 执行shell脚本提示“syntax error near unexpected token for((i=0;i<$length;i++))”
- syntax error near unexpected token `('
- 用git 下载android x86出错(syntax error near unexpected token `newline',`<!DOCTYPE HTML PUBLIC "-//IETF//)
- libtool: syntax error near unexpected token `]*'
- syntax error near unexpected token `('解决方法
- : syntax error near unexpected token `done'
- 运行shell脚本提示“syntax error near unexpected token for((i=0;i<$length;i++))”
- Linux 中出现的-bash: syntax error near unexpected token `('错误-------终端中无法识别“()”问题解决
- syntax error near unexpected token `then'问题的解决
- Android-~/bin/repo: line 1: syntax error near unexpected token `newline' 3修改
- syntax error near unexpected token `then'问题的解决
- 关于Cygwin中运行sh文件出现syntax error near unexpected token `$'{\r''
- 运行shell脚本报错: syntax error near unexpected token `'\r''
- syntax error near unexpected token shell