Не зная, какой язык Вы используете для написания кода в, это трудно дать Вам специфические особенности, но здесь является маленькой краткой информацией о выводах.
ошибка, stdout, stderr не являются переменными, но типами вывода, который может возвратить двоичный файл Unix.
stdout - Это - стандартный текст, который программа выводит на экран (во многих случаях) или файл (если перенаправлено) или другая программа, это может быть получено с помощью
program > file
stderr - Это - текст, который производится к потоку сообщений об ошибках, второй вывод, который не является caputred никаким перенаправлением stdout потока. Можно получить это использование
program 2> file
ошибка - Это - код, возвращенный из программы после того, как это завершится. Успех обычно обозначается 0. Можно получить это использование
#!/bin/bash
program
echo $?
Можно узнать больше о потоках на уровне страницы Wikipedia для Standard_Streams. Существует хорошая документация получения потоков в, избивают руководство удара.
Самый легкий путь, вероятно, к tee
сообщение к stderr, а также stdout:
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
tee
копирует его вход нескольким местам назначения, включая stdout. По умолчанию и stderr и stdout переходят к экрану; Вы перенаправляете stdout к Mail
, отъезд просто stderr идущий в экран.
При необходимости в нем в stdout по некоторым причинам Вы могли бы перенаправить его назад использование подоболочки (или несколько других путей):
(
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
) 2>&1
exec &> $LOGFILE
) и затем восстановите stdout, кошка файл к stdout и отправьте его по почте. – cas 20.09.2012, 01:48