EOFは私のスクリプトをブロックしていますか?

EOFは私のスクリプトをブロックしていますか?

私はこのスクリプトを持っています(実際には大きなスクリプトの一部です)。

#!/bin/sh

 if [ $actualsize -ge $MAXSIZE ]; then
  read dummy FILEPOINT <<EOF
  `dd if=myfile skip=8001 count=1 bs=1|od -x`
  EOF
 fi

私がそれを実行すると、私は得る

./bugged.sh: 9: Syntax error: end of file unexpected (expecting "fi")

明らかに問題は「EOF」にあります。なぜこれが起こり、どのようにして同じ結果を得るのですか(私のファイルから読む)?

答え1

インデントを停止するか、EOF以前に使用し<<-EOFてタブインデントを使用してください。

答え2

Ignacioは発生したエラーについて説明していますが、まずコードを単純化し、ここに文書を書かないことをお勧めします。たとえば、次のようになります。

filepoint=$(od -An -j 8001 -N 1 -t x1 < myfile)

関連情報