SHELL syntax error:unexpected end of file 提示错误
if [ -n "$1" ]
then
echo "111"
else
echo "222"
fi
exit 0
执行sh my.sh par 提示syntax error:unexpected end of file.错误请问为什么啊?
文本编辑是在windows下通过记事本编写的这个文件,运行 在cygwin模拟LINUX软件环境下。
解决思路:
DOS下文件和Linux下文件格式差异问题导致的。
DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。
【在windows里,换行用的两个符号,回车\r,换行符号\n,在linux下只需一个符号\n就可以了.】
DOS格式的文本文件在Linux下,用较低版本的vi打开时行尾会显示^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,"M.txt" [dos] 8L, 72C表示是一个dos文件格式。
解决方案:
使用下面的命令将文件格式设置为unix格式即可解决上述错误。
vi M.txt
:set fileformat=unix
:wq
- 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《博瑞博客》。
- 本文网址:http://blog.neacn.com/Linux/22.html
- 上篇文章:PHP运行模式(cgi,fast-cgi,cli,web模块模式)
- 下篇文章:Linux中编译apache服务器modules文件夹没有生成模块(.so)的问题