> > >---ORIGINAL MESSAGE--- >Date: Wed, 29 May 2002 11:32:49 -0700 >From: nbs <[EMAIL PROTECTED]> >To: [EMAIL PROTECTED] >Subject: Re: [vox-tech] quick, stupid bash question >Reply-To: [EMAIL PROTECTED] > >On Wed, May 29, 2002 at 11:29:29AM -0700, Peter Jay Salzman wrote: > >> >>ok, haven't tried this, but this looks to me like: >> >>put stderr into stdout >>redirect stdout (and therefore stderr) into /dev/null >>pipe stdout (which should be null) to grep. >> >>yet it works. where is my thinking going wrong? >> > >I'm guessing the order of operation goes backwards. >So: > > "redirect stdout to devnull, > shove stderr through stdout" > >and then finally, on the other end, again, "pipe it to grep" > > > >I'm far from a bash expert, though. Most of what I know I learned from >your bash talk, and most of that has evaporated off the top of my head. ;) > >-bill! > My only qualifications to answer this are having looked at the bash texinfo page, but I think it works like this:
send stderr to where stdout is going now send stdout to /dev/null now pipe I would think that these two constructs would be different (and the first one would be nonsensical): $ strace lsof 2>&1 1> /dev/null | grep System $ (strace lsof 2>&1 1> /dev/null) | grep System but they seem to actually act the same. ./ascript 1>&2 2>&1 #sends everything to standard error ./ascript 2>&1 1>&2 #sends everything to standard output As powerful as this is, there's no way to swap standard error and standard output. _______________________________________________ vox-tech mailing list [EMAIL PROTECTED] http://lists.lugod.org/mailman/listinfo/vox-tech
