./merge: line 27: syntax error: unexpected end of file

./merge: line 27: syntax error: unexpected end of file

我是刚学SHELL,今天写了一个小程序,可是总是提示:
./merge: line 27: syntax error: unexpected end of file我
不知道是什么问题?请帮忙看一下。还有其他更简洁的语法,请指教。
复制内容到剪贴板
代码:
#!/bin/bash
set *
a=`echo $#`
set --
echo $a
if [ $a -gt 5 ]
then
  sac << flag
        file1=`echo $ls *N.SAC | awk '{print $1}'`
      file2=`echo $ls *N.SAC | awk '{print $2}'`
      r     $file1  
      merge $file2
        w over
        file3=`echo $ls *Z.SAC | awk '{print $1}'`
      file4=`echo $ls *Z.SAC | awk '{print $2}'`
      r     $file3  
      merge $file4
        w over
  flag
                                
fi
      
标志输入结束的那个 flag 要顶格写       
3Q.....