bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bug with -o posix, local variables and assignment preceding builtins


From: Crestez Dan Leonard
Subject: Bug with -o posix, local variables and assignment preceding builtins
Date: Mon, 08 Feb 2010 03:33:59 +0200

We encountered a strange bug while working on bash-completion. I was
originally only able to reproduce this through a fairly elaborate setup
but Freddy Vulto <fvulto@gmail.com> found a tiny test case:

    set -o posix
    t() {
        local x
        BAR=a eval true
    }
    BAR=b; t; echo $BAR

Bash documentation claims the following (section 6.11 point 23):

""" Assignment statements preceding posix special builtins persist in
the shell environment after the builtin completes."""

The above example should always print "a" but with "#local x" commented
it prints "b". This is obviously wrong; the x variable is not even used.

This can be reproduced on all versions of bash since at least bash-3.0
(probably on bash-2 as well). I also checked Debian's dash as an
alternative posix-compliant shell and it always prints "a" as expected.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]