У мене є скрипт оболонки, 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 кожної команди, яка також виконується в цій оболонці, тому я не бачу повідомлення про помилки команд.