3.18. Process Substitution

Process substitution is the counterpart to command substitution. Command substitution sets a variable to the result of a command, as in dir_contents=`ls -al` or xref=$( grep word datafile). Process substitution feeds the output of a process to another process (in other words, it sends the results of a command to another command).

Note

There are no spaces between the parentheses and the "<" or ">". Space there would simply cause redirection from a subshell, rather than process substitution.

   1       cat <(ls -l)
   2       # Same as     ls -l | cat
   3 
   4       sort -k 9 <(ls -l /bin) <(ls -l /usr/bin) <(ls -l /usr/X11R6/bin)
   5       # Lists all the files in the 3 main 'bin' directories, and sorts by filename.
   6       # Note that three (count 'em) distinct commands are fed to 'sort'.
   7