Jeff King <[email protected]> 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).
>
> http://article.gmane.org/gmane.comp.version-control.git/137095
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=$XXX
}
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
advantage.
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
dak@lola:/usr/local/tmp/git$
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html