[Top][All Lists]

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

Re: Bug with -o posix, local variables and assignment preceding builtin

From: DennisW
Subject: Re: Bug with -o posix, local variables and assignment preceding builtins
Date: Sun, 7 Feb 2010 21:20:17 -0800 (PST)
User-agent: G2/1.0

On Feb 7, 7:33 pm, Crestez Dan Leonard <address@hidden> wrote:
> 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 <address@hidden> 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.

For reference, ksh93, busybox ash and zsh (with setopt posixbuiltins)
print "a"

reply via email to

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