I have a shell script with
set -x to have verbose/debug output:
#!/bin/bash set -x command1 command2 ...
The output looks like this:
+ command1 whatever output from command1 + command2 whatever output from command2
My problem is, the shell output (caused by
set -x) goes to the stderr, mixed with the output of the commands (
command2, …). I would be happy to have the "normal" output on the screen (like the script woud run without
set -x) and the "extra" output of bash separately in a file.
So I would like to have this on the screen:
whatever output from command1 whatever output from command2
and this in a log file:
+ command1 + command2
(also fine if the log file has everything together)
set -x 2> file obviously doens't take the right effect, because it's not the output of the set command, but it change the behaviour of the bash.
bash 2> file for the entire script also doesn't do the right thing, because it redirects the stderr of every command which run in this shell as well, so I don't see the error message of the commands.