シェルの猫エラー

シェルの猫エラー

タスクをスケジュールするために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をブロックの終わりとして認識しません。

おすすめ記事