That's a good point, I haven't thought about it like this. I always thought that each read always starts at the beginning of the file given fd points at. So the fact that it changes offset is a bit surprising:
# echo word >t # exec {in}<t # read -rn1 -u"$in"; echo "$REPLY" w # read -rn1 -u"$in"; echo "$REPLY" o # read -rn1 -u"$in"; echo "$REPLY" r # read -rn1 -u"$in"; echo "$REPLY" d I mean, it's surprising to me, I am not saying it's bad behavior or anything. Anyways, thanks for your feedback Tadeus. :) pon., 31 gru 2018 o 17:40 Tadeus Prastowo <tadeus.prast...@unitn.it> napisaĆ(a): > On Mon, Dec 31, 2018 at 2:37 AM mike b <michallinuxst...@gmail.com> wrote: > > [...] > > > The above is just an example. Doing reads on any other regular file like > > this yields same behavior: > > # echo bla >./t > > # exec 10<./t > > # read -r <&10 > > # echo $REPLY > > bla > > # read -r <&10 > > # echo $REPLY > > That's correct behavior because the second `read -r' already hits an > EOF, isn't that? > > -- > Best regards, > Tadeus >