Linux

如何在 linux 中使用 mail 命令時將多行回顯到電子郵件正文中?

  • March 15, 2022

我必須將一些文件名列表(查找命令的結果)發送到電子郵件正文中,並附上一條消息,上面寫著“以下是傳輸的文件列表”。如何將此消息與上述查找結果結合到郵件正文中。

前任:

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

我可以單獨執行上述命令,但不能將它們組合成一個。

請幫忙。謝謝你。

(您可以使用括號和將多個命令分組到一個子 shell 中),然後將子 shell 的輸出通過管道傳輸到mail.

例如(在“下面…”文本之後有一些額外的換行符):

( 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"

引用自:https://unix.stackexchange.com/questions/533270