![]() | This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||
|
I think rc originally invented this, but all you see in this article is bash. Can we get some verification that rc was the first?
82.0.106.250 (talk) 18:15, 14 January 2014 (UTC)
No, process substitution was in the Korn shell (already in ksh88) before rc (and bash of course). It's possible it was in zsh before bash (it was in zsh-0.03, not in bash 1.05), but it's hard to get information on earlier versions of those shells.
This page is also wrong in that it doesn't use named pipes but /dev/fd/n. (in ksh, process substitution only worked on systems with /dev/fd/n, bash and zsh are able to resort to named pipes when /dev/fd/n is not available).
zsh also has a 3rd form of process substitution that uses temp files (=(...)).
Also, processes run concurrently, it's not different than when using `|`. process substitution can also be done by hand in Bourne-like shells with things like:
{
cmd1 3<&- | {
cmd2 | diff /dev/fd/4 /dev/fd/0
} 4<&0 <&3 3<&-
} 3<&0