2006-10-31 23:23:16 +08:00
|
|
|
\section psub psub - perform process substitution
|
2005-10-21 20:39:45 +08:00
|
|
|
|
|
|
|
\subsection psub-synopsis Synopsis
|
2007-01-16 02:19:24 +08:00
|
|
|
<tt>COMMAND1 (COMMAND2|psub [-f]) </tt>
|
2005-10-21 20:39:45 +08:00
|
|
|
|
|
|
|
\subsection psub-description Description
|
|
|
|
|
|
|
|
Posix shells feature a syntax that is a mix between command
|
|
|
|
substitution and piping, called process substitution. It is used to
|
|
|
|
send the output of a command into the calling command, much like
|
|
|
|
command substitution, but with the difference that the output is not
|
|
|
|
sent through commandline arguments but through a named pipe, with the
|
|
|
|
filename of the named pipe sent as an argument to the calling
|
|
|
|
program. The psub shellscript function, which when combined with a
|
|
|
|
regular command substitution provides the same functionality.
|
|
|
|
|
2007-01-16 02:19:24 +08:00
|
|
|
If the \c -f or \c --file switch is given to psub, psub will use a
|
|
|
|
regular file instead of a named pipe to communicate with the calling
|
|
|
|
process. This will cause psub to be significantly slower when large
|
|
|
|
amounts of data are involved, but has the advantage that the reading
|
|
|
|
process can seek in the stream.
|
|
|
|
|
2005-10-21 20:39:45 +08:00
|
|
|
\subsection psub-example Example
|
|
|
|
|
|
|
|
<tt>diff (sort a.txt|psub) (sort b.txt|psub)</tt> shows the difference
|
|
|
|
between the sorted versions of files a.txt and b.txt.
|