タスクをスケジュールするために20個のフォルダにファイルを繰り返し作成するには、次のコードを使用しています。
#!/bin/bash
for i in {1..20}
do
cd conf$i
cp ../nvt.mdp $PWD
cp ../topol.top $PWD
grompp -v -f nvt.mdp -c conf$i.gro -p topol.top -o conf_nvt$i.tpr >> nvt.log
cat<<KHIK >> run_nvt$i.pbs
#!/bin/bash
#PBS -l nodes=1:ppn=16
#PBS -l walltime=120:00:00
#PBS -N GROMACS:TAUAT_P
#PBS -q blaze
#PBS -j oe
#PBS -V
cd \$PBS_O_WORKDIR
export I_MPI_DEVICE=rdma
/home/apps/ics/impi/latest/bin64/mpiexec.hydra /home/braf/md/gromacs-4.5.6/bin/mdrun_mpi -deffnm conf_nvt$i
KHIK
cd ..
done
奇妙なエラーが発生します。どのような変更が必要かを教えてください。
./umbrnvt.sh: line 22: warning: here-document at line 9 delimited by end-of-file (wanted `KHIK')
./umbrnvt.sh: line 23: syntax error: unexpected end of file
ベストアンサー1
行の先頭に閉じるタグが必要です。したがって、スクリプトは次のようにする必要があります。
#!/bin/bash
for i in {1..20}
do
cd conf$i
cp ../nvt.mdp $PWD
cp ../topol.top $PWD
grompp -v -f nvt.mdp -c conf$i.gro -p topol.top -o conf_nvt$i.tpr >> nvt.log
cat<<KHIK >> run_nvt$i.pbs
#!/bin/bash
#PBS -l nodes=1:ppn=16
#PBS -l walltime=120:00:00
#PBS -N GROMACS:TAUAT_P
#PBS -q blaze
#PBS -j oe
#PBS -V
cd \$PBS_O_WORKDIR
export I_MPI_DEVICE=rdma
/home/apps/ics/impi/latest/bin64/mpiexec.hydra /home/braf/md/gromacs-4.5.6/bin/mdrun_mpi -deffnm conf_nvt$i
KHIK
cd ..
done
それ以外の場合、bashはKHIKをブロックの終わりとして認識しません。