[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Probably very stupid script/bash question



On Wed, 05 Mar 2008 12:16:02 -0800
Bob McGowan <bob_mcgowan@symantec.com> wrote:

> Brian wrote:
> > 
> > So can you explain exactly what the first < <( echo "$teststring" )
> > does exactly please?
> >  
> In any case, I'd be interested in knowing where you found this
> construct.
> 

The bash man page seems to be one of the few that can be read a
thousand times and /still/ find something new in it each time!

The following extract is from 'man bash' ;-) ,although what it doesn't
make clear is that <(list) is preceeded by '< ', which I guess is why
it's often missed.

<blockquote>

   Process Substitution
       Process  substitution  is supported on systems that support
named pipes (FIFOs) or the /dev/fd method of naming open files.  It
takes the  form of  <(list) or >(list).  The process list is run with
its input or out- put connected to a FIFO or some file in /dev/fd.  The
name of this file is  passed  as  an argument to the current command as
the result of the expansion.  If the >(list) form is used, writing to
the file will  pro- vide  input  for list.  If the <(list) form is
used, the file passed as an argument should be read to obtain the
output of list.

       When available, process substitution is performed
simultaneously  with parameter  and variable expansion, command
substitution, and arithmetic expansion.

</blockquote>

Cheers
Mark.


Reply to: