# exec # # Shell builtin command # It can start a new process to replace the shell, without a new process # creation. It can make redirections take effect in the current shell # Redirect all STDOUT from within a script to the given file. exec > foo.log # Redirect all of both STDOUT & STDERR from within a script to the given file. exec > foo.log 2>&1 # Or, if on bash(1), this syntax is also viable: exec &> foo.log # Copy output to a log file, allowing the outputs to still work as usual. exec > >(tee -ia foo.log) exec 2> >(tee -ia foo.log >&2)