Попробуйте это
sed -e 's/[[:space:]]/\n/g' | grep -v '^$'
Это использует обоих grep
и sed
, но я надеюсь, что хорошо (если Вы имеете sed
в системе Вы обычно имеете grep
также)
Предполагая, что вы используете sendmail
или mail
в вашем скрипте (которые оба ожидают строку, отделенную запятыми, как список получателей), вы можете скомкатентовать идентификаторы (или напрямую записать их как такой список):
$: recipients="rec1@example.com, rec2@example.com, rec3@example.com"
или скомкатентовать:
$: base_recipients="important1@example.com, important2@example.com"
$: full_recipients="$base_recipients, special@example.com"
$: echo $full_recipients
important1@example.com, important2@example.com, special@example.com
Следующим примером будет отправка письма с sendmail
на 3 различных почтовых идентификатора:
#!/bin/bash
recipients="reci1@example.com, another@example.com, friend3@different.com"
subject="Mail to you all"
from="your_mail@something.com"
message_txt="Hi all!\n This is a message to all 3 of you!.\n cheers, Me."
/usr/sbin/sendmail "$recipients" << EOF
subject:$subject
from:$from
$message_txt
EOF
Вот мой код, использующий почтовый массив:
MAILADDR=(mail1@example.com mail2@example.com mail3@example.com)
for i in "${MAILADDR[@]}"
do
echo "Mail test..." | mail -s "Mail test subject..." $i
done