On 9/17/13 8:47 PM, Andrew de Andrade wrote:
> Bash Version: 4.2
> Patch Level: 45
> Release Status: release
>
> Description:
> When using source with process substitution, where the command
> writes to stdout, source closes the file descriptor created by
> the process substitution before reading from it.
>
> AFAIK this only occurs on Darwin. This impacts bash-completion
> used by npm and node-tabtab.
> https://github.com/isaacs/npm/blob/master/lib/completion.js#L163
>
> Repeat-By:
> Create a script or executable that writes another script to
> stdout. Execute that command like so...
> source <(my_command)
> ... then check if the script written to stdout was actually
> sourced.
Can you give me something that will allow me to reproduce the problem
more easily? I can't reproduce it with something like this:
foo()
{
echo "bar()"$'\n'"{ echo in bar;"$'\n'"}"
echo echo one
echo echo two
echo echo three
echo echo inside
echo type bar
echo bar
}
source <(foo)
echo outside
type bar
echo $?
Does it take a script of a certain size to trigger the problem? If the
problem is as you describe it should not work anywhere.
I happen to be using exactly the same release of MacOS X and kernel version
you are.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/