I'm making a script that executes some commands inside, and these commands show some output on
STDERR as well, but that's no problem). I need that my script generates a .tar.gz file to
STDOUT, so the output of some commands executed in the script also go to
STDOUT and this ends with a not valid .tar.gz file in the output.
So, in short, it's possible to output the first commands to the screen (as I still want to see the output) but not via
STDOUT? Also I would like to keep the
STDERR untouched so only error messages appear there.
A simple example of what I mean. This would be my script:
#!/bin/bash # the output of these commands shouldn't go to STDOUT, but still appear on screen some_cmd foo bar other_cmd baz #the following command creates a tar.gz of the "whatever" folder, #and outputs the result to STDOUT tar zc whatever/
I've tried messing with
exec and the file descriptors, but I still can't get it to work:
#!/bin/bash # save STDOUT to #3 exec 3>&1 # the output of these commands should go to #3 and screen, but not STDOUT some_cmd foo bar other_cmd baz # restore STDOUT exec 1>&3 # the output of this command should be the only one that goes to STDOUT tar zc whatever/
I guess I'm lacking closing
STDOUT after the first exec and reopen it again or something, but I can't find the right way to do it (right now the result is the same as if I didn't add the