How to select a random item from an array in shell
arr[0]="Ploink Poink"
arr[1]="I Need Oil"
arr[2]="Some Bytes are Missing!"
arr[3]="Poink Poink"
arr[4]="Piiiip Beeeep!!"
arr[5]="Hello"
arr[6]="Whoops! I'm out of memmory!"
rand=$[$RANDOM % ${#arr[@]}]
echo $(date)
echo ${arr[$rand]}
Change the line where you define selectedexpression
to
selectedexpression=${expressions[ $RANDOM % ${#expressions[@]} ]}
You want your index into expression
to be a random number from 0 to the length of the expression
array. This will do that.
Here's another solution that may be a bit more random than Jacob Mattison's solution (hard to say from the jot
manpages):
declare -a expressions=('Ploink' 'I Need Oil' 'Some Bytes are Missing' 'Poink Poink' 'Piiiip Beeeep' 'Hello' 'Whoops I am out of memory')
index=$( jot -r 1 0 $((${#expressions[@]} - 1)) )
selected_expression=${expressions[index]}