bash - перенаправление stdoutput и stderror не перехватывает весь вывод - PullRequest
4 голосов
/ 12 июня 2009

Я пишу несколько сценариев тестирования и хочу перехватить все выходные данные об ошибках и записать их в журнал ошибок, а также все обычные выходные данные и записать их в отдельный журнал. Я использую команду вида

cmd> output.file 2> error.file

Команда, для которой я пишу тестовые сценарии, может вызвать ошибку сегментации. Когда команда segfaults, bash все еще печатает ошибку сегментации на терминал.

Я хочу, чтобы это не происходило или меня перенаправляли вместе со стандартной ошибкой.

Возможно ли это? Это должно быть сделано bash, потому что оба выходных потока перенаправляются.

Ответы [ 2 ]

11 голосов
/ 12 июня 2009
bash -c 'cmd >output.file 2>error.file' >bash_output.file 2>&1
0 голосов
/ 12 июня 2009

Я не думаю, что segfaults являются частью вывода вашей программы с точки зрения оболочки. Так что используйте

Ожидайте для более надежного вывода

http://en.wikipedia.org/wiki/Expect

...