Path: csiph.com!xmission!news.glorb.com!usenet.stanford.edu!not-for-mail From: Ken Irving Newsgroups: gnu.bash.bug Subject: Re: Design question(s), re: why use of tmp-files or named-pipes(/dev/fd/N) instead of plain pipes? Date: Mon, 19 Oct 2015 09:36:00 -0800 Lines: 33 Approved: bug-bash@gnu.org Message-ID: References: <56218DA5.8030501@tlinx.org> <5622CDC8.2030102@case.edu> <5622EB23.6020700@tlinx.org> <56242D11.3050106@case.edu> NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: usenet.stanford.edu 1445276665 22712 208.118.235.17 (19 Oct 2015 17:44:25 GMT) X-Complaints-To: action@cs.stanford.edu Cc: Linda Walsh , bug-bash To: Chet Ramey Envelope-to: bug-bash@gnu.org Content-Disposition: inline In-Reply-To: <56242D11.3050106@case.edu> User-Agent: Mutt/1.5.20 (2009-06-14) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 137.229.5.242 X-Mailman-Approved-At: Mon, 19 Oct 2015 13:44:24 -0400 X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com gnu.bash.bug:11708 On Sun, Oct 18, 2015 at 07:36:49PM -0400, Chet Ramey wrote: > On 10/17/15 8:43 PM, Linda Walsh wrote: > > > > Chet Ramey wrote: ... > >> I think you're missing that process substitution is a word expansion > >> that is defined to expand to a filename. When it uses /dev/fd, it > >> uses pipes and exposes that pipe to the process as a filename in > >> /dev/fd. Named pipes are an alternative for systems that don't support > >> /dev/fd. > > ----- > > ??? I've never seen a usage where it expands to a filename and > > is treated as such. > > Every example of process substitution ever given expands to a filename, > and the result is treated as a filename. The manpage section on process substitution could perhaps present the concept more clearly by starting with something like the sentence just above, e.g., very roughly: Process Substitution, taking the form of <(list) or >(list), expands the process list to a filename, allowing the construct to be used in place of a filename for output or input to a command. It is supported on systems that support named pipes (FIFOs) or the /dev/fd method of naming open files. ... The section goes right into what seems like implementation details, and the use of it is only mentioned in the fourth sentence or so. Ken