#!/usr/bin/ksh -f # Quick First Ver # (i.e. I know its poorly put together) if [ "$1" = "" ]; then # bad usage printf "Usage: rand [ file | items ]\n" 1>&2 exit 1 elif [ "$1" = "-n" ]; then # give the line number if [ ! -r $2 ]; then echo "Error: Can't open $2" 1>&2 exit 2 fi wc -l $2 | awk '{ srand(); printf("%d\n", rand()*$1 + 1) }' elif [ "$2" != "" ]; then # just pick a random parameter echo $@ | awk '{ srand(); pos = sprintf("%d\n", rand()*NF + 1); print $pos }' elif [ -r $1 ]; then # pick a random line from the file line=`wc -l $1 | awk '{ srand(); printf("%d\n", rand()*$1 + 1) }'` tail +$line $1 | head -1 else # nothing random about it echo "Error: Can't open '$1'" 1>&2 exit 2 fi # EXIT STATUS # 0 - success # 1 - bad usage # 2 - can't open file