On Mon, Aug 01, 2022 at 04:37:18PM +0900, Dominique Martinet wrote:
> Harald Dunkel wrote on Mon, Aug 01, 2022 at 09:08:40AM +0200:
> > a colleague pointed me to a changed behavior of bash 5.1.4 in Debian 11.
> > ----
> > #! /bin/bash
> > # set -x
> > 
> > insert()
> > {
> >    local data="$1"
> >    local lineNumber="$2"
> > 
> >    head -n "$lineNumber"
> 
> The problem is that stdin is eaten up by this head command.
> 
> What changed is that bash used to store stdin input in a temporary file,
> so head could seek back to the actual position in the stream after the
> first three lines but that no longer works:

Specifically, this part of the bash 5.1 changelog:

c. Here documents and here strings now use pipes for the expanded document if
   it's smaller than the pipe buffer size, reverting to temporary files if it's
   larger.

Reply via email to