Re: read command not reading from pipe. why?
Foss User ha scritto:
Because the "read" is done in a child process, that starts, executes its
instructions (ie: read), modifies its own private environment, and then
dies, leaving the parent's environment untouched.
I see that the read command stores input entered only on the console
into the variables. Example:
$ read a
$ echo $a
But when I don't enter input on the console by keyboard, but pipe it
into the standard input of read, I am unable to store the input into
$ echo bar | read a
$ echo $a
However, the help of read says this:
$ help read
read: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p
prompt] [-t timeout] [-u fd] [name ...]
Read a line from the standard input and split it into fields.
So, why is it not reading the line from standard input when input is
passed to it using a pipe?
$echo qwerty | while read a ; do echo "a=$a" ; done
Hope that helped