URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9599
[ Назад ]

Исходное сообщение
"Помогите написать shell-процедуру.."

Отправлено pol49 , 10-Дек-12 19:11 
Написать shell-процедуру, которая:
•все почтовые сообщения, полученные от заданного первым параметром пользователя, посылает
работающим в данный момент в системе пользователям;
•если в системе работает пользователь, приславший данное сообщение, то этому пользователю
посылает сообщение, содержащееся в файле, имя которого передается в качестве параметра.

Содержание

Сообщения в этом обсуждении
"Помогите написать shell-процедуру.."
Отправлено DeadLoco , 10-Дек-12 19:26 
man who
man sendmail



"Помогите написать shell-процедуру.."
Отправлено pol49 , 11-Дек-12 07:26 
> man who
> man sendmail

А поподробнее,просто совсем не шарю.. :(


"Помогите написать shell-процедуру.."
Отправлено Аноним , 11-Дек-12 07:37 
>> man who
>> man sendmail
> А поподробнее,просто совсем не шарю.. :(

man bash
man man


"Помогите написать shell-процедуру.."
Отправлено AV , 20-Дек-12 21:13 
> Написать shell-процедуру, которая:
> •все почтовые сообщения, полученные от заданного первым параметром пользователя,
> посылает
> работающим в данный момент в системе пользователям;
> •если в системе работает пользователь, приславший данное сообщение, то этому пользователю
> посылает сообщение, содержащееся в файле, имя которого передается в качестве параметра.

Рассыльшик одинаковых писем с вложениями каждому адресату из списка это где-то 300-350 отдельных строк кода. Причём непосредственно готовое уже сообщение шлётся отдельной программой. Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при знании shell языка, при умении написать понятный код.

Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.

Или задавать конкретные вопросы.


"Помогите написать shell-процедуру.."
Отправлено LSTemp , 21-Дек-12 04:55 
>[оверквотинг удален]
> Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при
> знании shell языка, при умении написать понятный код.
> Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на
> сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.
> Или задавать конкретные вопросы.

1) отправьте свои 25% зарплаты в фонд голодающих детей Африки.
2) отправьте свои 1000 строк кода куда хотите
3) для решения поставленой задачи достаточно простого скрипта (ну еще строк 10-ть от силы на вытяжку текста письма):


[root@local 111]# cat ./msg.bsh
#!/bin/bash

sender=$1
file=$2
msg=''

function getmsg()
{
# get mail message here from specified user & echo it.
# simple mail|grep $sender|etc

echo "this is a test mail."
}

function sndmsg()
{
local text

who|
while read w
do
   name=`echo "$w"|awk '{ printf $1 }'`
   term=`echo "$w"|awk '{ printf $2 }'`
  
   if [ "$name" != "$sender" ]
   then
       text="$msg"
   else
       text="$file"
   fi

   if [ -n "$text" ]
   then
       if [ "$name" != "$sender" ]
       then
           echo -e "!!! MESSAGE from $sender !!!\n\r" > /dev/$term
       else
           echo -e "!!! MESSAGE for $sender !!!\n\r" > /dev/$term
       fi
       echo -e "$text\n\r" > /dev/$term
   fi
done
}

function help()
{
echo "$0: sender [file]"
}

case $# in
     1|\
     2) msg=`getmsg`
        if [ -e "$file" ]
        then
           file=`cat "$file"`
        else
           file=''
        fi
        sndmsg;
        ;;
     *) help
        ;;
esac

PS
разумеется можно и красивее сделать (это за 5-ть минут на коленке), но откуда 1000 строк кода интересно возьмуться?



"Помогите написать shell-процедуру.."
Отправлено pavlinux , 21-Дек-12 16:25 
>>[оверквотинг удален]
>> Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при
>> знании shell языка, при умении написать понятный код.
>> Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на
>> сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.
>> Или задавать конкретные вопросы.
> 1) отправьте свои 25% зарплаты в фонд голодающих детей Африки.
> 2) отправьте свои 1000 строк кода куда хотите
> 3) для решения поставленой задачи достаточно простого скрипта (ну еще строк 10-ть
> от силы на вытяжку текста письма):

Не видно самого интересного, содержания function getmsg(), которая
"читает все почтовые сообщения, полученные от ЗАДАННОГО первым параметром пользователя"
и sndmsg(), которая определяет жив ли ЗАДАННЫЙ, и только тогда шлёт;


:D


"Помогите написать shell-процедуру.."
Отправлено LSTemp , 30-Янв-13 05:50 
> Не видно самого интересного, содержания function getmsg(), которая
> "читает все почтовые сообщения, полученные от ЗАДАННОГО первым параметром пользователя"

не видно потому, что неизвестно где почтовые сообщения живут: /var/mail? DB? etc
откуда надо - оттуда и читайте. все равно не больше 10-20-и строк кода в скрипте.

> и sndmsg(), которая определяет жив ли ЗАДАННЫЙ, и только тогда шлёт;

с каких пор команда who "неживых" пользователей выводит?
> :D

сказал же сразу - на коленке делано.

:D.


"Помогите написать shell-процедуру.."
Отправлено AV , 23-Дек-12 20:29 
Добавлю, к примеру: что делать скрипту если $file нет. И там вылезет немало такой шахтёрской работы. А окажется, ТЗ надо подкорректировать. Проектеры чаще ошибаются в сторону переоценки времени/объёма, программеры в сторону недооценки.

Я не писал, что это будет 1000 строк кода. У меня написано иначе. Хотя, я, действительно, ~100 строк хелпа приписал к строкам кода.


А вообще: с почином. За опубликованный код - уважение за дело.


"Помогите написать shell-процедуру.."
Отправлено LSTemp , 30-Янв-13 05:56 
> Добавлю, к примеру: что делать скрипту если $file нет. И там вылезет

if [ -e "$file" ]

не впечатляет?

> немало такой шахтёрской работы. А окажется, ТЗ надо подкорректировать. Проектеры чаще
> ошибаются в сторону переоценки времени/объёма, программеры в сторону недооценки.
> Я не писал, что это будет 1000 строк кода. У меня написано

Написано у Вас (русским по форуму):
"
Рассыльшик одинаковых писем с вложениями каждому адресату из списка это где-то 300-350 отдельных строк кода. Причём непосредственно готовое уже сообщение шлётся отдельной программой. Т.е. надо где-то 600-1000 строк кода.
"

> иначе. Хотя, я, действительно, ~100 строк хелпа приписал к строкам кода.

хелп - не код, а документация считай (применительно к скрипту).

PS
про "почин" вообще не понял.



"Помогите написать shell-процедуру.."
Отправлено LSTemp , 30-Янв-13 07:38 
PSS
в условиях задачи не указано, что входящие почтовые сообщения должны так же по почте пересылаться => кидаем их прямо на терминал работающего пользователя (самый простой вариант реализации).