diff options
Diffstat (limited to 'bin/myb')
-rwxr-xr-x | bin/myb | 27 |
1 files changed, 14 insertions, 13 deletions
@@ -2,21 +2,22 @@ # Exit with success or failure with a given probability self=myb -# No more than one argument -if [ "$#" -gt 1 ] ; then - printf >&2 '%s: Unexpected arguments\n' "$self" - exit 2 -fi - -# Sole accepted argument is denominator of the probability fraction, e.g. 3 is -# a probability of 1/3; defaults to 2 -denom=${1:-2} +# Figure out numerator and denominator from arguments +case $# in + 0) num=1 den=2 ;; + 1) num=1 den=$1 ;; + 2) num=$1 den=$2 ;; + *) + printf >&2 '%s: Unexpected arguments\n' "$self" + exit 2 + ;; +esac -# Denominator must be positive integer (it can be one) -if [ "$((denom > 0))" -ne 1 ] ; then - printf >&2 '%s: Illegal denominator %s\n' "$self" "$denom" +# Numerator must be zero or greater, denominator must be 1 or greater +if [ "$((num >= 0 || den >= 1))" -ne 1 ] ; then + printf >&2 '%s: Illegal numerator/denominator %s\n' "$self" exit 2 fi # Perform the test; that's our exit value -test "$(rndi 1 "$denom")" -eq 1 +test "$(rndi 1 "$den")" -le "$num" |