[Top][All Lists]

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

Re: Incrementing variable=0 with arithmetic expansion causes Return code

From: Chris Elvidge
Subject: Re: Incrementing variable=0 with arithmetic expansion causes Return code = 1
Date: Fri, 28 Aug 2020 14:42:05 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 Lightning/5.4

On 28/08/2020 09:00 am, Gabriel Winkler wrote:
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc -I/home/abuild/rpmbuild/BUILD/bash-4.4 
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' 
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-suse-linux-gnu' 
-DCONF_VENDOR='suse' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL 
-DHAVE_CONFIG_H   -I.  -I. -I./include -I./lib   -fmessage-length=0 
-grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong 
-funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g  
-D_GNU_SOURCE -DRECYCLES_PIDS -Wall -g -Wuninitialized -Wextra -Wno-switch-enum 
-Wno-unused-variable -Wno-unused-parameter -Wno-parentheses -ftree-loop-linear 
-pipe -DBNC382214=0 -DIMPORT_FUNCTIONS_DEF=0 -fprofile-use -fprofile-correction
uname output: Linux sophie 4.12.14-150.32-default #1 SMP Thu Aug 1 08:42:52 UTC 
2019 (a2a3983) x86_64 x86_64 x86_64 GNU/Linux
Machine Type: x86_64-suse-linux-gnu

Bash Version: 4.4
Patch Level: 23
Release Status: release

If I have a variable with the value 0 assigned to it incrementing it causes the 
return code to be 1, even though the variable has been incremented 
successfully. This only happens if the value of the variable is 0. With 
positive and negative values this bug is no present.

# Works fine
echo $?
echo $test

# Causes error
echo $?
echo $test

​Best Regards

Gabriel Winkler


bpm consult ag
beeline solutions
Gabriel Winkler
DevOps Engineer
Industriestrasse Ost 10
CH-4614 Hägendorf

Telefon +41 61 417 10 68
Web     www.bpm.ch<http://www.bpm.ch/>

From man bash:

The expression is evaluated according to the rules described
below under ARITHMETIC EVALUATION.  If the value of the
expression is non-zero, the return status is 0; otherwise the
return status is 1.  This is exactly equivalent to
let "expression".

Chris Elvidge

reply via email to

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