Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #11451
| From | Clint Hepner <clint.hepner@gmail.com> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | Inconsistent arithmetic evaluation of parameters |
| Date | 2015-09-01 00:50 -0400 |
| Message-ID | <mailman.345.1441128798.19560.bug-bash@gnu.org> (permalink) |
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: darwin14.5.0
Compiler: clang
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' -DCONF_OSTYPE='darwin14.5.0' -DCONF_MACHTYPE='x86_64-apple-darwin14.5.0' -DCONF_VENDOR='apple' -DLOCALEDIR='/usr/local/Cellar/bash/4.3.42/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -DMACOSX -I. -I. -I./include -I./lib -I./lib/intl -I/private/tmp/bash20150826-30526-beo5d/bash-4.3/lib/intl -DSSH_SOURCE_BASHRC
uname output: Darwin 192.168.1.17 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64
Machine Type: x86_64-apple-darwin14.5.0
Bash Version: 4.3
Patch Level: 42
Release Status: release
Description:
Parameter names are recursively evaluated in an arithmetic expression, but this
is not done consistently.
Repeat-By:
foo=bar
bar=5
echo $(( foo )) # produces 5
echo $(( foo++ )) # produces 5
echo $foo # produces 6, not bar
echo $bar # produces 5, not 6
Fix:
It's not clear what should be fixed. First of all, it's not clear what foo
is actually evaluating to. If it evaluates to bar, then bar should be
incremented. If it evaluates to 5, then the autoincrement should be a syntax
error.
It seems like the "correct" behavior would be for a parameter to be evaluated
until its value is a parameter name whose value is an actual integer, such that
foo=bar
bar=baz
baz=5
echo $(( foo++ )) # produces 5; result should be baz=6 and foo, bar unchanged.
Back to gnu.bash.bug | Previous | Next | Find similar
Inconsistent arithmetic evaluation of parameters Clint Hepner <clint.hepner@gmail.com> - 2015-09-01 00:50 -0400
csiph-web