Consider such code:

echo hello >> log.txt
echo world >> log.txt

I execute command with stdout redirection. Is it possible to create sticky redirection? Something like this:

redir stdout log.txt
echo hello
echo world

This would be equivalent to the first piece code.

What I really need -- make such sticky redirection for stdout and stderr (at the same time), execute some commands, stop redirection, and read log file.

1 Answer 1

exec 3>&1 4>&2 >log.txt 2>&1
echo hello
echo world
exec 1>&3 2>&4
less log.txt

I.e.: make file descriptors 3 and 4 copies of the current 1 (stdout) and 2 (stderr), redirect 1 to log.txt and 2 to the same as 1; then perform commands; then restore stdout and stderr from the saved values in file descriptors 3 and 4.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .