Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 22.12.2015, 16:15   #1
canonier
Новичок
Джуниор
 
Регистрация: 22.12.2015
Сообщений: 2
По умолчанию bash Не работает команда отправки почтового сообщения

Коллеги, добрый день!
Помогите, пожалуйста, начинающему скриптописателю.
Итак: Linux CentOS 6, bash
Команда для отправки письма в файл выглядит так:
/bin/mail -s 'Subject' -F /var/tmp/messages/message01 pupkin@jet.su <<< 'Hello world!!!'

Странность заключается в том, что если эту команду выполнить просто из командной строки, то она выполняется просто на ура, письмо появляется в файле. А если эта же строчка в чистом виде в скрипте, то ничего не происходит и не выводится. Я не пойму в чем подстава, подскажите, пожалуйста.
PS: остальные команды скрипта выполняются.
canonier вне форума   Ответить с цитированием
Старый 22.12.2015, 16:24   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

в скрипте какой интерпретатор прописан?(первая строка скрипта)

скорее всего там /bin/sh
он не умеет тройной редирект.
замените на
Код:
echo Hello world!!! | /bin/mail -s 'Subject' -F /var/tmp/messages/message01 pupkin@jet.su
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 22.12.2015 в 16:34.
Пепел Феникса вне форума   Ответить с цитированием
Старый 22.12.2015, 16:44   #3
canonier
Новичок
Джуниор
 
Регистрация: 22.12.2015
Сообщений: 2
По умолчанию

Там прописан #!/bin/bash
Но фишка не в этом. Я перепробовал и Ваш вариант тоже. Потом упростил скрипт до одной этой строчки - работает!!

Теперь приведу полный скрипт и покажу при наличие каких строк не работает:

STDIN=$(cat -) #Скрипт получает параметры из потока.

#Далее, он полученные из потока данные УСПЕШНО обрабатывает!
SRCMAIL=$(echo $STDIN | sed -n '{s/.*From: //p}' | awk ' {print $1} ')
DSTMAIL=$(echo $STDIN | sed -n '{s/.*To: //p}' | awk ' {print $1} ')
BODYMAIL=$(echo $STDIN | sed -n '{s/.*base64 //p}' | awk ' {print $1} ')

echo $SRCMAIL >> /tmp/tempscript
echo $DSTMAIL >> /tmp/tempscript
echo $BODYMAIL >> /tmp/tempscript

#И теперь, вуаля! не работает моя команда для отправки письма! Если убрать все, что выше, команда работает. Но пока отправка письма ниже НЕ ЗАВИСИТ от кода выше. Вот в чем фишка.
/bin/mail -s 'Subject' -F /var/tmp/messages/message01 pupkin@jet.su <<< 'Hello world!!!'
canonier вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция чтения почтового сообщения на С Timer1 Помощь студентам 3 18.04.2014 18:38
Функция чтения почтового сообщения на С Timer1 Фриланс 1 18.04.2014 18:28
Команда grep в bash CraZZZy-GameRRR Помощь студентам 0 04.11.2012 21:57
Команда System: запуск программы в свёрнутом режиме, Не работает команда /min Me777 Общие вопросы C/C++ 0 12.07.2011 11:49
Форма отправки сообщения starichenko HTML и CSS 5 26.05.2011 14:52


00:57.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.