私はこのスクリプトを持っています(実際には大きなスクリプトの一部です)。
#!/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)