将电子邮件发送到阵列中的用户列表,其中包含阵列中的附件列表

时间:2016-08-19 17:08:04

标签: bash

如果可能,我希望将单个电子邮件发送到bash数组中定义的用户列表,其中包含bash数组中包含的文件列表。

EMAILS=(email1@email.com email2@email.com)
FILES=(picture1.png picture2.png)
echo "$(date)" | mailx -s "Snapshot for $(date)" ${EMAILS[@]}

我做到了这一点,但我仍然坚持如何将附件附加到电子邮件中。我知道您应该使用-A "PATH_TO_FILE",但我不知道如何扩展数组,以便-A以每个文件名为前缀。

目前使用Ubuntu 14.04 LTS,bash版本4.3.11

1 个答案:

答案 0 :(得分:1)

从命令替换和printf获取帮助:

$ FILES=(picture1.png picture2.png)

$ echo $(printf -- '-A %s ' "${FILES[@]}")
-A picture1.png -A picture2.png

所以你需要:

echo "$(date)" | mailx -s "Snapshot for $(date)" $(printf -- '-A %s ' "${FILES[@]}") "${EMAILS[@]}"