перенаправление stdout и stderr
Запись создана 21 декабря, 2009
Коротко и ясно расскажу о пере направлении stdout и stderr. stdout это нормальный вывод, stderr это ошибки.
[root@shakirov ~]# ls /opt/ /blah ls: /blah: Нет такого файла или каталога /opt/: firebird iso lost+found
красным выделен stderr, а синим stdout. По умолчанию в output отправляется и stdout и stderr.
перенаправления stdout в /tmp/stdout используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah > /tmp/stdout
ls: /blah: Нет такого файла или каталога
для перенаправления stderr в /tmp/stderr используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah 2> /tmp/stdout
/opt/:
firebird iso lost+found
Для перенаправления sterr и stdout в файл /tmp/all используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah > /tmp/all 2>&1
Есть вариант когда stderr и stdout отправляются в output и в файл. Это удобно для отладки интерактивных скриптов. Делается это через tee.
[root@shakirov ~]# ls /opt/ /blah 2>&1 | tee /tmp/all ls: /blah: Нет такого файла или каталога /opt/: firebird iso lost+found
ну и пара практических вариантов, отправка stdout и stderr на электронную почту:
[cc lang=»bash»][root@shakirov ~]# ls /opt/ /blah 2>&1 | mail root@localhost[/cc]
скрытие сообщений об ошибках:
[cc lang=»bash»][root@shakirov ~]# ls /opt/ /blah 2> /dev/null[/cc]
Схожие темы
» Запись из раздела Несортированное | 2 комментария
Комментарии
2 комментария to “перенаправление stdout и stderr”
Ответить
в команде перенаправления stderr в файл двойка перед > пропущена
да, точно. спасибо поправил.