18

Я знаю ответ для некоторых оболочек, например, с помощью cmd.exe вы можете:

some.exe > out.txt 2>&1

Как добиться того же для других оболочек (bash, ksh, tcsh, powershell и т.д.)?

4 ответа4

16

Рыбная раковина

Чтобы перенаправить как стандартный вывод, так и стандартную ошибку в файл all_output.txt, вы можете написать:

echo Hello > all_output.txt ^&1
5

Для csh и tcsh

some.exec >& out.txt
2

В Bash вы делаете точно так же.

./some_exec > out 2>&1
2

В Powershell это точно так же:

2>&1      Sends errors to the        get-process none, powershell 2>&1
          success output stream.

(из about_Redirection).

В bash и ksh, по крайней мере, я тоже знаю, что так работает.

Кажется, это общее соглашение.

Быстрый способ узнать об этом - открыть страницу руководства оболочки и выполнить поиск для &1 (с помощью / а затем набрав &1). Это редко происходит в других контекстах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .