Jump to content

Talk:Process substitution

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

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]