Re: Possible bug when combining Bash's process substitution with HERE-document?
I've heard process substitutions considerably complicate parsing. zsh and ksh93 are the only others that have process substitutions that I know of, and zsh can't handle unbalanced parentheses in that situation either. $ zsh -c $'cat <(cat <<"EOF"\n(test)(foo\nEOF\n)' zsh:4: parse error near `<(cat <<"EOF"' $ ksh -c $'cat <(cat <<"EOF"\n(test)(foo\nEOF\n)' (test)(foo This is probably the most directly equivalent workaround: $ { cat <(cat) <&3-; } 3<&0 <<<'(test)(foo' (test)(foo Identical logic except the procsub inherits the heredoc FD from its parent. The inner cat still gets the heredoc and the outer cat gets the original stdin, but dodges needing the nested heredoc. On Tue, Jun 17, 2014 at 4:54 PM, Tim Friske wrote: > Hi, > > see my question > http://unix.stackexchange.com/questions/137506/how-to-combine-bashs-process-substitution-with-here-document > for a description. > > Could the described behavior be a bug? > > Kind regards > Tim >
Re: Possible bug when combining Bash's process substitution with HERE-document?
On 6/17/14, 5:54 PM, Tim Friske wrote: > Hi, > > see my question > http://unix.stackexchange.com/questions/137506/how-to-combine-bashs-process-substitution-with-here-document > for a description. > > Could the described behavior be a bug? Yes, since bash can parse the same construct without any problems if you use command substitution, it looks like a bug. I'll take a look. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/
Re: Possible bug when combining Bash's process substitution with HERE-document?
On Wed, Jun 18, 2014 at 2:49 PM, Chet Ramey wrote: > Yes, since bash can parse the same construct without any problems if you > use command substitution, it looks like a bug. I'll take a look. It brings to mind all those unbalanced paren case..esac bugs that affected every shell ever. I suppose this might qualify as a bug too? bash -c 'cat <(case x in x) echo test; esac)'; sleep 1 bash: process substitution: line 0: syntax error near unexpected token `newline' bash: process substitution: line 0: `case x in x' cat: /dev/fd/63 echo test; esac): No such file or directory
Re: Possible bug when combining Bash's process substitution with HERE-document?
On 6/18/14, 4:27 PM, Dan Douglas wrote: > On Wed, Jun 18, 2014 at 2:49 PM, Chet Ramey wrote: >> Yes, since bash can parse the same construct without any problems if you >> use command substitution, it looks like a bug. I'll take a look. > > It brings to mind all those unbalanced paren case..esac bugs that > affected every shell ever. > I suppose this might qualify as a bug too? Yes, with the same fix. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/