2016-08-19 62 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