web-dev-qa-db-ja.com

添付ファイルを送信するときに、mailxで本文の改行を維持するにはどうすればよいですか?

ログファイルのテキストをメールの本文としてメールで送信するスクリプトがあります。このログファイルでは、読みやすくするためにテキスト行の間に空白行がいくつかあります。

スクリプトで次の行を使用すると、電子メールは適切なフォーマットで問題なく送信されます。

cat ${log}|mailx -s "Email Subject Line" ${i} < ${log}

しかし、私は今、電子メールにいくつかのファイルを添付したいと思います。私はこの行を次のように変更しました:

( echo `cat ${log}` ; uuencode ${file1} ${file1a} ; uuencode ${file2} ${file2a} ; uuencode ${file3} ${file3a} ) | mailx -m -s "Email Subject Line" ${i}

ご了承ください ${i}は両方の行の電子メール受信者です。

したがって、メールは添付ファイル付きで問題なく送信されますが、メッセージの本文は改行や何もない1つの大きなテキストブロックにすぎません。

Mailx行を正しく記述していませんか?メッセージの本文に永続化する書式を取得する方法はありますか?

3
user3756852

コマンドラインで引用符で囲まれていない改行はスペースとして扱われます。そういうわけであなたは次のようなことを言うことができます

コマンド1  && 
コマンド2

まあ、引用符で囲まれていない改行はセミコロンのように扱われることがあります。しかし、あなたが言うとき

echo `cat ${log}`

ログファイルの改行はすべてスペースに変換されます。あなたは言うことによってこれを修正することができます

echo "`cat ${log}`"

しかし、なぜ言うだけではないのですか

cat ${log}