On 29 August 2006 17:04, Silva, Russell wrote:
> The value of $? is always 0 when this problem occurs, even if it should > be a non-zero value. For instance: > > <bug_reproduce3.sh> > #!/bin/bash > # make 1000 attempts to reproduce the bug > for i in `seq 1 1000` > do > # ls should return incorrect usage = error code 2 > x=$(ls -j 2>&1); > # if the bug has occurred > if [[ $x == "" ]] > then > # this outputs 0, but "incorrect usage" ls should (and does) return > 2 > echo $? > fi > done > When the bug occurs, causing $x to be empty, the value of $? is 0 when > it should be 2. Are you sure you aren't testing the return value of the 'if' or perhaps the '[[' command there? What happens if you rewrite it as: #!/bin/bash # make 1000 attempts to reproduce the bug for i in `seq 1 1000` do # ls should return incorrect usage = error code 2 x=$(ls -j 2>&1); y=$? # if the bug has occurred if [[ $x == "" ]] then echo $y fi done cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/