Полезные советы. Перенаправление 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
Похожие записи: