У меня есть сценарий оболочки, set -x
чтобы иметь подробный / отладочный вывод:
#!/bin/bash
set -x
command1
command2
...
Вывод выглядит так:
+ command1
whatever output from command1
+ command2
whatever output from command2
Моя проблема, выход оболочки (вызванный set -x
) идет в поток ошибок, смешанного с выходом команд ( command1
, command2
, ...). Я был бы рад иметь на экране «нормальный» вывод (например, скрипт без запуска set -x
) и «дополнительный» вывод bash отдельно в файле.
Так что я хотел бы иметь это на экране:
whatever output from command1
whatever output from command2
и это в лог-файле:
+ command1
+ command2
(также хорошо, если в файле журнала есть все вместе)
set -x 2> file
Явно doens't принять правильное действие, потому что это не выход из команды набора, но изменить поведение Баша.
Использование bash 2> file
для всего сценария также не дает правильных результатов, потому что оно перенаправляет stderr каждой команды, которая также выполняется в этой оболочке, поэтому я не вижу сообщения об ошибках команд.