syntax error: unexpected end of file  

linux 下 出现此种错误 有可能有以下几种原因:
1。换行符问题

     没有使用unix换行符

     解决办法:
vi check_mem.sh         
:set fileformat=unix
 :wq

在vi里用

 :1, $ s/^M//

替换掉^M           

2。 没有结束标记

     如if之后没有fi

        for 循环 do之后没有done

        while 循环 do这后没有done  

3。oracle sqlplus 没有正确结尾

        sqlplsu ......         <<EOF

         EOF
        要求结尾的EOF必须顶格写。