From: Petr Baudis Date: Mon, 11 Aug 2008 17:05:15 GMT Subject: Re: git-bisect: weird usage of read(1) Message-ID: <20080811170515.GD10151@machine.or.cz> In-Reply-To: <48A0705B.3030107@lsrfire.ath.cx> On Mon, Aug 11, 2008 at 07:01:15PM +0200, René Scharfe wrote: > Petr Baudis schrieb: > > On Mon, Aug 11, 2008 at 04:59:32PM +0100, Reece Dunn wrote: > >>>> On Mon, 11 Aug 2008, Francis Moreau wrote: > >>>>> case "$(read yesno)" in [Nn]*) exit 1 ;; esac > >> does not work as expected. Replacing this with > >> > >> case "$(read yesno; echo $yesno)" in [Nn]*) exit 1 ;; esac > >> > >> would work as intended, as Mikael has pointed out. > > > > Wouldn't it be more elegant to > > > > case "$(head -n 1)" in [Nn]*) exit 1 ;; esac > > Only if head is a built-in, otherwise you fork needlessly. Not that > this is a performance critical part, but I wouldn't call it "elegant". Ok, exec head -n 1. ;) And yes, I know... I guess I've just spent too much time perl-golfing lately. > What's wrong with the following variant, already used a few lines up in > the file? > > read yesno > case "$yesno" in [Nn]*) exit 1 ;; esac Nothing wrong with this one, of course. -- Petr "Pasky" Baudis The next generation of interesting software will be done on the Macintosh, not the IBM PC. -- Bill Gates