diff --git a/README.md b/README.md index 865ec4c..3e8bbde 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ My collection of useful shell scripts. +### randint.sh +usage: randint +print in the terminal a random integer x with $` 0 \leq x \lt \$1`$ + ### killwine.sh kill every wine process including processes hanging diff --git a/randint.sh b/randint.sh new file mode 100755 index 0000000..2450e19 --- /dev/null +++ b/randint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +if ! [[ "$1" =~ ^[0-9]+$ ]]; then + echo "Usage: randint " + exit 1 +fi +number=$1 +ceiling=$(echo "l($number +1)/l(2)" | bc -l | awk '{ + bits = ($1 == int($1)) ? $1 : int($1) + 1; + print int( (bits + 7) / 8 ) +}') +random_num=$(xxd -p -l $ceiling /dev/urandom | tr -d '\n' | awk -v num="$number" '{print strtonum("0x" $0) % num}') +echo $random_num