Integer variables in older versions of Bash were signed
long (32-bit) integers, in the range of
-2147483648 to 2147483647. An operation that took a variable
outside these limits gave an erroneous result.
echo $BASH_VERSION # 1.14
echo "a = $a" # a = 2147483646
let "a+=1" # Increment "a".
echo "a = $a" # a = 2147483647
let "a+=1" # increment "a" again, past the limit.
echo "a = $a" # a = -2147483648
# ERROR: out of range,
# + and the leftmost bit, the sign bit,
# + has been set, making the result negative.
As of version >= 2.05b, Bash supports 64-bit integers.