while循环语法错误意外结束文件

时间:2012-02-22 17:26:56

标签: bash syntax while-loop syntax-error

我的while循环出现语法错误,我的代码如下

#! /bin/bash
# extracts pdb from mdcrd and fix number and move to one central location

filename="min_8a-"
i=1
num_structures=1000
natoms=97
folders=15



while [[ $i -le $folders ]]; do
 cd ~/new/sa/na-main/a-na-main/second/$i
 mkdir pdbfit

x=1

 while [[ $x -le $num_structures ]]; do

   ptraj ./8a-${a}.prmtop << EOF
   trajin $filename$a.mdcrd $x $x 1
   trajout pdbfit/a-2-$i.pdb pdb dumpq
 EOF
 let x=$x+1
 done

 cd pdbfit 
 mv *.* ~/pdbfit
 cd ..
 rm pdbfit

let i=$i+1
done

我得到第34行语法错误,说明“语法错误:意外的文件结束”

作为一个未经训练的眼睛,我尝试但未能解决这个问题,所以如果有人可以帮助我,那么这将是非常好的。

1 个答案:

答案 0 :(得分:5)

确保EOF位于该行的开头。

   ptraj ./8a-${a}.prmtop << EOF
   trajin $filename$a.mdcrd $x $x 1
   trajout pdbfit/a-2-$i.pdb pdb dumpq
EOF
^ no space before the E