2016-08-19 32 views
1

我希望尽可能发送单个电子邮件到在bash阵列中定义的用户列表,列出的文件包含在也是一个bash数组。发送电子邮件到阵列中的用户列表,列表中包含阵列中的附件列表

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

我走到这一步,但我坚持我如何会去附件附加到电子邮件。我知道你应该使用-A "PATH_TO_FILE",但我不知道如何扩展数组,以便-A以每个文件名为前缀。

目前使用的命令替换Ubuntu的LTS 14.04,bash的版本4.3.11

回答

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[@]}" 
+0

收到此错误: ' mailx:File1.png -A File2.png -A File3.png -A File4.png:不能stat:文件名太长了' – DeadCake

+0

@DeadCake我的不好,它是肌肉记忆..检查编辑答案呃.. – heemayl

+0

完美的作品。谢谢! – DeadCake

相关问题