[Techtalk] re: Joining commands together in bash
rasjidw at openminddev.net
Tue May 13 19:29:08 EST 2003
On Tuesday 13 May 2003 17:14, Berenice wrote:
> So [ -n...] is equivalent to [ x..!=x ] ? I couldn't find -n in man
Try 'man test' instead. (See Malcom's post.)
> > however, it's much simpler to just check the return status of grep:
> > for FILE in *; do
> > if file $FILE | (grep 'shell script text executable'
> > &/dev/null);
> > then
> > echo "-- $FILE --"
> > head -n 3 $FILE
> > fi
> > done
> Could you explain how "&/dev/null" works? In this case, ampersand
> means background execution, right?
I think a > was lost in line wrap-around. The original post had:
which means redirect all output (both output to stdout and stderr) to
/dev/null. The & in this case is not background execution, but says 'join
the output from stdout and stderr together'. The result is that you don't
see any output from the grep command, since it has been redirected to the
null device. See man bash for more details.
Canberra, Australia UTC + 10
More information about the Techtalk