Jeff King <> writes:

> On Wed, Mar 12, 2014 at 09:37:41PM +0100, David Kastrup wrote:
>> > Try:
>> >
>> >   zippo() {
>> >     echo $XXX
>> >   }
>> >   XXX=8 zippo
>> >   zippo
>> >
>> > XXX remains set after the first call under dash (but not bash). I
>> > believe "ash" has the same behavior.
>> Yes.  I would lean towards considering this a bug.  But I agree that it
>> does not help.
> Dash's behavior is POSIX (and "bash --posix" behaves the same way).

In that case I consider it a standard-compliant bug (namely being a
serious problem regarding the usefulness of shell functions).  Which
makes it unlikely to go away.  It makes it easier to interpret, say

zippo() {

XXX=8 zippo
echo $XXX

as shell functions presumably should be able to assign to shell
variables like built-ins do.  But that's not really much of an

The behavior does not make sense to me also with regard to special
built-ins.  Bash does

dak@lola:/usr/local/tmp/git$ XXX=8 :
dak@lola:/usr/local/tmp/git$ echo $XXX


And that makes sense to me.  Whatever, does not help.

David Kastrup
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to