В общем, нужно написать скрипт, отправляющий мессаги, используя sendmail
Но когда я зашёл на #linux на русском далнете, мне сказали, что мой скрипт будет неуневерсален, если я пропишу определенный путь к сендмайлу, т.к. руть к нему разный в разных никсах.
но мне также сказали, что узнать путь к сендмайлу можно, используя команду "which sendmail".
А как мне перловым скриптом выполнить эту команду и ответ системы записать в переменную?
Сам я временно не имею доступа к транслятору, так что за работоспособность кода не отвечаю, но должно работать. Вначале в $temp кладёшь ответ which или type -p или ещё чего - совершенно в данном случае не важно. Далее:
Спасибо! ;)
Правда, у меня сейчас уже нет возможности проверить его работоспособность - ещё немного, и я улетаю в другую строну без доступа к компу на 3 недели =(
Но как только приеду - проверю и о результатах сообщу ;)
Ещё раз пасиб...)
проще путь в конфиг вынести, как это обычно и делается14.07.04 16:04 Автор: !? <!?> Статус: Member
> > Используй обратные кавычки > > $a=`which sendmail`; > > В этом случае при > print "$a"; ничего не выводится =(
Это странно.. Скорее всего Ты вызываешь Perl с какими-то флагами или используешь use strict 'чё-то там'. Такого не должно быть. А по поводу примера кода - сегодня ночью попробую что-нибудь замутить. Хотя у меня в QNX вообще which отсутствует..
ЗЫ. С exec я описался - конечно там system нужен. Старею, блин :-(
имхо, лучше всего комбинированный способ15.07.04 04:47 Автор: Ktirf <Æ Rusakov> Статус: Elderman Отредактировано 15.07.04 04:47 Количество правок: 1
То есть сначала мы смотрим на то, что написано в конфиге (смотрим в данном случае значит проверяем наличие - system("test -x $SENDMAIL_PATH"), наверное, можно лучше), после чего выясняем, есть ли вообще sendmail: system("sendmail <попытка что-то с ним сделать>").
C which беда в том, что формат вывода зависит от системы (например, у меня на SuSE Linux он дает "$1 is /real/path/to/$1", а на ALT Linux просто вываливает real/path/to/$1). Честно говоря, я не очень понимаю, зачем вообще нужно знать точный путь к sendmail, если можно просто попытаться им что-то сделать.
which не во всех *nix'ах есть15.07.04 09:59 Автор: VEK Статус: Незарегистрированный пользователь
Например, в SCO UNIX (Openserver) ее нет, вместо нее команда type, подозреваю, что может не быть еще в каком-нибудь экзотическом unix'е.
В Solaris which есть.
На самом деле, если ничего не путаю, type - это как раз стандартная команда.15.07.04 13:15 Автор: Ktirf <Æ Rusakov> Статус: Elderman
То есть если хочется хорошей переносимости, то лучше пользовать type -p (кстати, если я опять же ничего не путаю, от нее вывод всегда будет вполне определенным).
то есть system("type -p sendmail"); даст мне правильный путь...15.07.04 14:45 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
> То есть если хочется хорошей переносимости, то лучше > пользовать type -p (кстати, если я опять же ничего не > путаю, от нее вывод всегда будет вполне определенным).
то есть system("type -p sendmail"); даст мне правильный путь к сендмайлу во всех никсах?
Насколько я понимаю, да, только там его выкусывать придется15.07.04 17:33 Автор: Ktirf <Æ Rusakov> Статус: Elderman