Hallo,
I was using the build in (( )) function for count up an index. I think I found
a bug in GNU bash, version 4.2.24(1)-release (x86_64-pc-linux-gnu).
The (( )) function is working fine, but the corresponding return value does not
match.
Check following small example (have the focus on $?)
----------SCRIPT START-----------------
#!/bin/bash
index=-3
for a in 1 2 3 4 5 6 7 ; do
echo "Index before: $index"
(( index++ ))
echo "Return value: $?"
echo "Index after: $index"
echo "----"
done
----------SCRIPT END------------------
OUTPUT is:
Index before: -3
Return value: 0
Index after: -2
----
Index before: -2
Return value: 0
Index after: -1
----
Index before: -1
Return value: 0
Index after: 0
----
Index before: 0
Return value: 1 <-- ?BUG? The index was counted up correctly, from 0 to 1,
but return value of (( ))-function is "1"
Index after: 1
----
Index before: 1
Return value: 0
Index after: 2
----
Index before: 2
Return value: 0
Index after: 3
----
Index before: 3
Return value: 0
Index after: 4
Cheers,
Martin
----------------------------------------------------------
Martin Orlob - Systemintegrator
Im Auftrag der
e.solutions GmbH
GVZ Halle N West / Eingang A,
Pascalstraße 5, 85057 Ingolstadt, Germany
Registered Office:
Pascalstr. 5, 85057 Ingolstadt, Germany
Phone +49-8458-3332-702
Fax +49-8458-3332-20130
mailto:
[email protected]<mailto:[email protected]>
e.solutions GmbH
Managing Directors Uwe Reder, Dr. Riclef Schmidt-Clausen
Register Court Ingolstadt HRB 5221