Полезные советы. Перенаправление stdout.

24.02.2009

Команды запускаются из shell интерактивно. Такой процесс имеет два стандартных вывода информации: stdout для нормальной работы и stderr для вывода ошибок. В следующем примере /tmpp не найдено и вывод идет в stderr, а /tmp найдено и поэтому вывод идет в stdout:

$ ls /tmp /tmpp

По умолчанию оба потока выводятся на экран. При использовании знак (>) можно перенаправить вывод в файл. Для перенаправления стандартного потока используется (>), а для потока ошибок используется (2>) в файл. Либо их комбинация:

$ ls /tmp /tmpp > out.txt
$ ls /tmp /tmpp 2 > outerrors.txt
$ ls /tmp /tmpp 2 > outerrors.txt > out.txt
$ ls /tmp /tmpp > all.txt 2>&1

Для того чтобы добавить информацию в файл, а не перезаписывать нужно использовать >>.

$ ls /tmp >> out.txt

Если не нужно видеть выходной поток, то можно перенаправить вывод в специальное устройство /dev/null:

$ ls /tmp 2> /dev/null

Похожие записи:

  1. Полезные советы. Перенаправление stdin.


admin

14.12.2009

dvc, спасибо за внимательность! :) Исправил.

dvc

11.12.2009

Очепятка:

---
...
Для того чтобы добавить информацию в файл, а не перезаписывать нужно использовать >>.

$ ls /tmp > out.txt
...
----
Должно быть:
$ ls /tmp >> out.txt






4 + 2 =

© 2001-2015 NLG