Вы можете попробовать команду tr
.
Вот сценарий:
#!/bin/bash
value=alex,raj,kaly,rema
echo $value | tr ',' ' '
Вот результат:
bash bash.sh
alex raj kaly rema
cron
по умолчанию использует значение общесистемного макроса _PATH_SENDMAIL
в качестве расширения MAILCMD
, команды для отправки сгенерированных сообщений по рабочим местам. Чтобы использовать другую почтовую программу, вам необходимо изменить Makefile, чтобы определить соответствующие значения для макросов MAILCMD
и MAILARGS
.Makefile в дереве исходного кода включает закомментированные определения, иллюстрирующие возможные значения, но, похоже, есть небольшая ошибка в макросе MAILARGS
, который применяется, когда MAILCMD
определяется как /bin. /mail
— имеет два расширения строки, но получает только одну строку при вызове, поэтому в патче в сути я удалил первое из расширений.
Если у вас установлена утилита patch
(она есть в портах, если нет), примените этот патч (относительно /usr/src/usr.sbin/cron
) и соберите/установите cron:
% cd /usr/src/usr.sbin/cron
% make
% make install
Перезапустите cron, теперь вы должны использовать /bin/mail
. Н.Б. эта исправленная версия корректно строится в моей системе (11-STABLE), но я не пробовал использовать ее вместо версии по умолчанию. Помните, что вам, вероятно, придется сделать это снова при обновлении, поскольку FreeBSD по умолчанию использует /usr/lib/sendmail
.
Фактический путь, используемый cron
- /usr/sbin/sendmail
, который определен в /usr/include/paths.h
. Обычно это символическая ссылка на mailwrapper(8).
Вы можете изменить поведение по умолчанию для всех приложений, изменив /etc/mail/mailer.conf
. Подробнее см. в mailer.conf(5).
Конечно, ваш /bin/mail
должен иметь схожую семантику с sendmail
, и вы должны быть готовы изменить поведение по умолчанию для sendmail
во всей системе.