Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #11451

Inconsistent arithmetic evaluation of parameters

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)

Show all headers | View raw


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


Thread

Inconsistent arithmetic evaluation of parameters Clint Hepner <clint.hepner@gmail.com> - 2015-09-01 00:50 -0400

csiph-web