Talk:Process substitution

Latest comment: 9 years ago by Stephane Chazelas

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)Reply

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

--Stephane Chazelas (talk) 08:22, 24 July 2014 (UTC)Reply