From: Ævar Arnfjörð Bjarmason Date: Fri, 09 Jul 2010 11:52:35 GMT Subject: Re: [RFC] war on echo in scripts Message-ID: In-Reply-To: <20100709024633.GA13739@dert.cs.uchicago.edu> On Fri, Jul 9, 2010 at 02:46, Jonathan Nieder wrote: > Andreas Schwab wrote: >> Jonathan Nieder writes: > >>>  die() { >>> -    echo >&2 "$@" >>> +    printf >&2 '%s\n' "$@" >> >> You probably want to use "$*" here, though it wouldn't matter for the >> uses of die in this file. > > Hmm, maybe something like this would be easier. > [...] > +echo() { > +       printf '%s\n' "$*" > +} > + Overriding builtins like this isn't portable. (Via H.Merijn Brand): This fails on the old HP-UX 10.20 bourne shell: > cat xx.sh #!/bin/sh echo () { perl -le'print "Done!"' } echo 1 echo Klaar > sh xx.sh xx.sh[3]: The operation is not allowed in a restricted shell.: echo is a shell builtin. 1 Klaar