Jeff King <peff@xxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html