В сценариях оболочки, 1 is file descriptor for standard output
и 2 is for standard error
. Теперь, поскольку обе эти точки указывают на консоль, что используется 2>&1
. Разве они уже не указывают на одно и то же устройство?Что такое использование 2> & 1 в сценариях оболочки
ответ
Короткий ответ перенаправления 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
.
- 1. Что такое использование() в сценариях оболочки?
- 2. Что такое $ APPHOME в сценариях оболочки?
- 3. В сценариях оболочки Linux, что означает «x = $ {1: 3: 1}»?
- 4. Использование OpenMP в сценариях оболочки
- 5. Использование shebang в сценариях оболочки
- 6. что \ W \ D означает в сценариях оболочки?
- 7. Булевы выражения в сценариях оболочки
- 8. Аргументы в сценариях оболочки
- 9. Использование знака доллара в сценариях оболочки
- 10. Использование if elif fi в сценариях оболочки
- 11. Что делает оператор «= ~» в сценариях оболочки?
- 12. В сценариях оболочки, что значит. [!.] * Означает?
- 13. Что такое $? означает в сценариях bash?
- 14. SPRINTF в сценариях оболочки?
- 15. Shell Scripting: Что означает -z в сценариях оболочки?
- 16. Сравнение переменных в сценариях оболочки
- 17. Назначение Аргументы в сценариях оболочки
- 18. Предпочтительный способ #! в сценариях оболочки
- 19. Ассоциативные массивы в сценариях оболочки
- 20. Что такое DEFINE в сценарии оболочки
- 21. Что делает оператор «2 >>» в сценариях оболочки?
- 22. Что такое использование указателей функций?
- 23. Что такое исходная функция оболочки?
- 24. В чем смысл восклицания «!» в сценариях оболочки?
- 25. Проблема в выражении echo в сценариях оболочки
- 26. В сценариях оболочки Unix, что означает токен $ {0%/*}?
- 27. Что такое # ^: _ 1
- 28. Что такое «(1)» в git (1)?
- 29. Что такое "1 #" в rfc2616
- 30. Что такое $ 1 в Perl?
http://stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean?rq=1 –
Добро пожаловать в Stack Exchange, пожалуйста, посмотрите http://stackoverflow.com/help/спрашивать и делать правильные исследования, чтобы делать полезные вопросы – Javier