On Tue, Oct 28, 2008 at 10:51:13PM +0100, Ralf Wildenhues wrote: [...] > > : > stdout > stderr [...] > Yes. For shell portability, I'll write the first line as > : > stdout > : > stderr > > though.
Why? I can't see why ": > stdout > stderr" wouldn't work in any shell. It should even work in non-Bourne ones such as csh, it would also work in "rc" (on systems where there's a /bin/:). It should even work in the Bourne shell from Unix V7 and the pre-Bourne ones in earlier versions. [...] > + ( $at_traceon; $1 ) >>"$at_stdout" 2>>"$at_stder1" I've not read the full code so I don't know what $1 may contain, but I wonder whether eval "$1" shouldn't be preferable here (in case $1 is meant to contain a shell command line as opposed to a space separated list of wildcards). > at_func_filter_trace $? > else > - ( :; $1 ) >"$at_stdout" 2>"$at_stderr" > + : >"$at_stderr" > + ( :; $1 ) >>"$at_stdout" 2>>"$at_stderr" What's the ":;" for? -- Stéphane