Linuxでmailコマンドを使用するとき、電子メールの本文に複数行をどのようにエコーしますか?

Linuxでmailコマンドを使用するとき、電子メールの本文に複数行をどのようにエコーしますか?

「以下は送信されたファイルのリストです」というメッセージとともに、一部のファイル名のリスト(findコマンドの結果)を電子メール本文に送信する必要があります。このメッセージを上記の検索結果とメッセージ本文にマージするにはどうすればよいですか?

前任者:

echo "Below are list of files transfered" | mail -s "$some_subject" $some_mail_id

find . -maxdepth 1 -type f -name $(echo ${FILE_ARR[@]}| sed 's/ / -o -name /g') | \
  mail -s "$some_subject" $some_mail_id

上記のコマンドを個別に実行することはできますが、1つにまとめることはできません。

助けてください。ありがとうございます。

ベストアンサー1

(括弧を使用して複数のコマンドをサブシェルにグループ化し、サブシェル)の出力をmail.

たとえば、("below..."テキストの後にいくつかの追加の改行を含む):

( printf '%s\n\n\n' "Below are list of files transfered"
  find . -maxdepth 1 -type f -name $(echo ${FILE_ARR[@]}| sed 's/ / -o -name /g')
) | mail -s "$some_subject" "$some_mail_id"

またはfindコマンドが必要ない場合(そしてそうでない場合):

( printf '%s\n\n\n' "Below are list of files transfered"
  printf '%s\n' "${FILE_ARR[@]}"
) | mail -s "$some_subject" "$some_mail_id"

おすすめ記事