ターミナルからメールを送信するスクリプトが必要です。ここで見た内容やオンライン上の他の多くの場所に基づいて、次のようにフォーマットしました。
/var/mail -s "$SUBJECT" "$EMAIL" << EOF
Here's a line of my message!
And here's another line!
Last line of the message here!
EOF
しかし、これを実行すると次の警告が表示されます:
myfile.sh: line x: warning: here-document at line y delimited by end-of-file (wanted 'EOF')
myfile.sh: line x+1: syntax error: unexpected end of file
...ここで、行 x はプログラムで最後に記述されたコード行で、行 y はその中の行です。他のもの (、など) に置き換え/var/mail
てみましたが、うまくいきませんでした。オンラインで見つけたほとんどすべてでこの方法が採用されていますが、私は bash の初心者なので、自分で解決するのは困難です。どなたか助けていただけませんか?EOF
ENDOFMESSAGE
FINISH
ベストアンサー1
トークンEOF
は行の先頭に配置する必要があり、それに伴うコード ブロックと一緒にインデントすることはできません。
記述する場合は<<-EOF
インデントできますが、スペースではなく文字でインデントする必要がありますTab。そのため、コード ブロックが均等にならない可能性があります。
また、空白がないことを確認してください後EOF
ライン上のトークン。