[CLUE-Tech] shell scripting - reassigning stdout/stderr

marcus hall marcus at tuells.org
Mon Jun 21 15:50:24 MDT 2004


On Mon, Jun 21, 2004 at 04:32:41PM -0400, Angelo Bertolli wrote:
> Using the standard bourn shell script (/bin/sh), is there a way to make 
> all output by default direct to another fd besides stdout/stderr?
> 
> What I mean is there any way to have the entire script redirect output 
> to the same place without having to tack &> onto the end of everything?

Sure!

Try:

	exec >file

You can also re-direct stderr with:

	exec 2>err_file

That is, the following script will write output to a log file in /tmp:

	#!/bin/bash
	exec >/tmp/logoutput 2>&1

	echo Command executed on $(date)
	ls -l / | grep fred
	ps -fae >/tmp/ps_output

The output (and stderr) are directed to /tmp/logoutput.  The echo and
grep both get their output directed automatically.  The ps command
overrides this, and gets re-directed to a different file.

-- 
Marcus Hall
marcus at tuells.org



More information about the clue-tech mailing list