У меня есть команда, которую я часто запускаю, и мне нравится направлять ее вывод в файл. Я делаю это так:

runFooBar > output.txt 2>&1

Есть ли способ, которым я могу записать вывод runFooBar в файл output.txt, сохраняя при этом возможность видеть вывод в стандартном out/error во время выполнения команды?

Я запускаю это на Linux и OS X машинах.

2 ответа2

3

Используйте команду "тройник".

echo hi | tee ./file.txt

Команда "tee" принимает стандартный ввод и перенаправляет его как в указанный файл, так и в стандартный вывод. Он называется "тройник" после Т-образного соединения в водопроводе (трубопровод).

1

Способ перенаправить стандартный вывод и стандартную ошибку в один файл:

echo Hello 2>&1 | tee some_file.txt

Это поместит их обоих в один файл. Возможно, вы захотите поместить их в отдельные файлы. Вы можете добиться этого, используя функцию Bash, заменяя процесс следующим образом:

echo Hello > >(tee standard_output.txt) 2> >(tee standard_error.txt >&2)

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