syntaxerror:unexpectedendoffile问题的解决办法
这种错误都是没有结束标记造得的
如if之后没有fi
for 循环 do之后没有done
while 循环 do这后没有done
--------------------------------------------------------------------------------------------------------------------------------------------------------
在windows上用虚拟机装好redhat linux,完成网络配置,能与我的windows交互了。其它也不需要配。
开始学习bash,每次测试代码都在windows下写好,然后传到linux上执行。
在学习到if等流程控制的语法的时候,我遇见了第一个难题写的if的测试总是不正确:
“if.sh:line11:syntaxerror:unexpectedendoffile”。
这个问题解决方案如下:学shell还是用vi或vim吧!
dos文件转换成unix文件格式
dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如"dos.txt"[dos]120L,2532C字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC],因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误,那么需要把这些dos文件格式转换成unix格式,方法是
vidos.txt
:setfileformat=unix
:w
这样文件就转换成unix格式文件了,一般在windows机器上编写好了文件传到unix下就可能会出现这样的情况,而一般我们使用ftp命令,常常会加上bin参数表示二进制传输,可是试一下不加bin参数,可能传到unix下就是unix格式