LinuxForum.Fans
Тема

Bash: результат + mail

Автор: AlexP_ 8 сообщений 1903 просмотров
#244206

Необходимо отправить письмо, в котором содержится результат сценария, на почтовый адрес если сценарий вернет положительный результат.

Делаю так:

text
тут мой короткий сценарий | mail -s '123' me@googlemail.com

Мой сценарий выводит определеннык числа из файла если они там есть.

Письмо приходит, содержит в себе результат сценария. НО, если сценарий отработал с отрецательным результатом (в файле не оказалось нужных чисел) то письмо приходит пустое.

Подскажите, пожалуйста, реализацию.

#244211

Весьма корявенько, работает с кучей оговорок, но более предметно можно будет говорить, если точно представлять вашу задачу:

text

lupo@gentoo-laptop /tmp $ cat test.txt 
123
12
23
132
lupo@gentoo-laptop /tmp $ grep 12 test.txt > $$.txt && cat $$.txt | mail lupo
lupo@gentoo-laptop /tmp $ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/lupo": 1 message 1 new
>N  1 lupo@gentoo-lapto  Fri Apr 06 23:00   16/560   
& 1
Message 1:
From lupo@gentoo-laptop.ha0s.net Fri Apr 06 23:00:42 2012
Envelope-to: lupo@gentoo-laptop.ha0s.net
Delivery-date: Fri, 06 Apr 2012 23:00:42 +0300
To: lupo@gentoo-laptop.ha0s.net
From: lupo@gentoo-laptop.ha0s.net
Date: Fri, 06 Apr 2012 23:00:42 +0300

123 12

& d & q lupo@gentoo-laptop /tmp $ grep 125 test.txt > $$.txt && cat $$.txt | mail lupo lupo@gentoo-laptop /tmp $ mail No mail for lupo

#244247

Lupo Alberto, чего-то вы нагородили...
AlexP., два варианта:
1) вывод в переменную направить

text
OUTPUT="$(тут мой короткий сценарий)"
if [ -n "$OUTPUT" ]; then
    echo "$OUTPUT" |  mail -s '123' me@googlemail.com
fi

2) вывод во временный файл.

text
TMP_FILE=$(mktemp)
тут мой короткий сценарий >$TMP_FILE
# тут проверка, что скрипт что-то вывел
cat $TMP_FILE |  mail -s '123' me@googlemail.com

rm -f $TMP_FILE

первый способ предпочтительнее. если вывод небольшой. второй - если большой

#244248
"Fat-Zer" написал:
Lupo Alberto, чего-то вы нагородили...
text
grep 12 test.txt > $$.txt && cat $$.txt | mail lupo

Вот вся команда, остальное пример её выполнения.

#244253
"Lupo Alberto" написал:
Вот вся команда, остальное пример её выполнения.

не, просто ИМХО файл с pid'ом создавать не Ъ

#244259
"Fat-Zer" написал:
не, просто ИМХО файл с pid'ом создавать не Ъ

Я просто указал направление, а не пытался предложить готовое решение.

#244260
"Lupo Alberto" написал:
Я просто указал направление, а не пытался предложить готовое решение.

всё равно для этого есть mktemp.

#244264
"Fat-Zer" написал:
всё равно для этого есть mktemp.

Хорошо, убедили ;)
Теперь отныне и впредь — только mktemp :rolleyes:

Войдите или зарегистрируйтесь, чтобы ответить.