On Thursday 21 of March 2013 10:22:54 erik quanstrom wrote:
> the more idiomatic way to write this is if(~ 0 1); plan 9 has no
> /bin/false. plan 9 rc behaves in the same way, and the usual
> solution is to use ~ 0 0 to clear the status, or exit ''.
>
> i have seen scripts reuse the status, especially of a pipe
> inside the if. (obviously the status is the same in either
> branch.)
thanks Erik, it makes sense to me now :-)
i'd rather have if's $status visible only to the first statement following it,
for example:
if (foo | bar | baz) { # sets $status
if (! ~ $status ....) { # uses $status
handle_particular_kind_of_pipeline_failure
}
do_other_stuff # should not be affected
}
do_yet_other_stuff # should not be affected either
...but guess rc's semantics are almost set in stone by now :-)
cheers,
--
dexen deVries
[[[↓][→]]]