case 0
i=0; ls > $((++i)); echo i=$i
create file: 1
and conclusion:
= 0
comment: why i = 0?
case 1
i=0; ls $((++i)); echo i=$i
exit:
1
= 1
comment: correct result
case 2
i=0; echo > $((++i)); echo i=$i
create file: 1
and conclusion:
= 1
comment: correct result
case 3
i=0; echo 1 | grep $((++i)); echo i=$i
exit:
1
= 0
comment: perhaps case 3 <=> case 0?
case 4
i=0; command ls > $((++i)); echo i=$i
create file: 1
and conclusion:
= 1
comment: why diff in case 0?
case 5
i=0; { ls; } > $((++i)); echo i=$i
create file: 1
and conclusion:
= 1
comment: this case from gniourf_gniourf
more cases:
i=0; ( echo ) > $((++i)); echo i=$i
I am very confused, why am I = 0 in case 0?
Is this a mistake?
My bash version: GNU bash, version 3.2.25 (1) -release (i686-redhat-linux-gnu)
You can try in bash.
source share