2015-08-20 3 views
-1

В сценариях оболочки, 1 is file descriptor for standard output и 2 is for standard error. Теперь, поскольку обе эти точки указывают на консоль, что используется 2>&1. Разве они уже не указывают на одно и то же устройство?Что такое использование 2> & 1 в сценариях оболочки

+5

http://stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean?rq=1 –

+1

Добро пожаловать в Stack Exchange, пожалуйста, посмотрите http://stackoverflow.com/help/спрашивать и делать правильные исследования, чтобы делать полезные вопросы – Javier

ответ

3

Короткий ответ перенаправления stderr в stdout так что вы получите как сообщения об ошибках, записанных в FD2, а также нормальный выход на FD1 написанном FD1. (FD = дескриптор файла). Обычно это позволяет вам записывать вывод сообщений об ошибках, которые вы хотите сохранить в файле журнала, и т. Д., Которые иначе не были бы захвачены просто путем перенаправления stdout на журнал.

В качестве краткого фона, ваша оболочка имеет 3 хорошо известных файловых дескрипторов, которые охватывают основные чтения и записи:

- STDIN (ваш входной буфер)

- стандартный вывод (ваш нормальный выход дескриптор)

- STDERR (ваш нормальный дескриптор ошибки)

При чтении или записи практически любой язык программирования, включая оболочку, использует эти общие файловые дескрипторы для управления вводом/выводом. В вашей оболочке вы можете перенаправить или объединить выходные данные с stdout и stderr. Общий формат:

m > &n ## where n & m are 1, 2 

можно комбинировать, например, как stdout и stderr из любой команды в файл с:

./someprogram > myfile 2>&1 

Который в основном говорит, «взять выход из someprogram на stdout перенаправить его на myfile, а в том числе stderr в stdout.

Есть несколько хороших ссылок, один из которых BASH Programming - Introduction HOW-TO: All about redirection

Примечание: Убедитесь, что вы также понимаете, что перенаправление может выполняться во временном (на основе каждой команды) или может быть установлено для области действия сценария с использованием exec.

Смежные вопросы