错误:
syntax error: unexpected end of file
追问其原因,文件肯定没有错误,因为是从windows下拷贝过来。其实这就是问题。windows下的文件通常都是dos文件格式,而linux下采用unix文件格式。dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "test.txt" [dos] 530L, 4568C 字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC],因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误。
解决方法:
把这些dos文件格式转换成unix格式,方法是
vi dos.txt
:set fileformat=unix
:wq
这样文件就转换成unix格式文件了,一般在windows机器上编写好了文件传到unix下就可能会出现这样的情况,而一般我们使用ftp命令,常常会加上bin参数表示二进制传输,可以试一下加asc参数,可能传到unix下就是unix格式
其他解决方法:
从windows复制过去,在linux里用cp命令复制一遍(未验证)