|
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.
[Prev in Thread] | Current Thread | [Next in Thread] |