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.

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.