[Bug 1376329] Re: readarray doesn't work with pipes
xhienne
1376329 at bugs.launchpad.net
Mon Jun 19 17:45:04 UTC 2017
This is not a bug but the expected behavior.
Due to the use of a pipe, "readarray blah" is executed in a sub-shell.
But "echo ${blah[@]}" is executed in the parent shell. This has nothing
to do with readarray, the command ": | blah=blah; echo $blah" would also
fail to output blah.
On the other hand, this will work because both readarray and echo execute in the same subshell:
$ cat /tmp/foo | ( readarray blah; echo "${blah[@]}" )
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash in Ubuntu.
https://bugs.launchpad.net/bugs/1376329
Title:
readarray doesn't work with pipes
Status in bash package in Ubuntu:
New
Bug description:
(echo one 1 ; echo two 2 ; echo three 3) > /tmp/foo
#works
readarray blah < /tmp/foo
echo "${blah[@]}"
# doesn't work:
unset blah
cat /tmp/foo | readarray blah
echo "${blah[@]}"
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1376329/+subscriptions
More information about the foundations-bugs
mailing list