案例0
i=0; ls > $((++i)); echo i=$i
并输出:
I = 0
评论:为什么我= 0?
情况1
i=0; ls $((++i)); echo i=$i
输出:
1
I = 1
评论:结果是正确的
案例2
i=0; echo > $((++i)); echo i=$i
并输出:
I = 1
评论:结果是正确的
案例3
i=0; echo 1 | grep $((++i)); echo i=$i
输出:
1
I = 0
评论:也许案例3< =>案例0?
案例4
i=0; command ls > $((++i)); echo i=$i
并输出:
I = 1
评论:为什么差异与案例0?
案例5
i=0; { ls; } > $((++i)); echo i=$i
并输出:
I = 1
更多案例:
i=0; ( echo ) > $((++i)); echo i=$i #i=0 i=0; { ls > $((++i)); }; echo i=$i #i=0
我很困惑,为什么在0的情况下i = 0?
是不是一个bug?
我的bash版本:GNU bash,版本3.2.25(1)-release(i686-redhat-linux-gnu)
你可以试试你的bash.