Extraer un elemento aleatorio de una lista en Shell Script
Para trabajar con elementos ordenados aleatoriamente en GNU/Linux tenemos shuf. Una de las posibilidades que ofrece shuf es trabajar con listas indicadas con el modificador -e, que devuelve la lista ordenada aleatoriamente:
$ shuf -e red green blue green blue red $ shuf -e red green blue red blue green
Si queremos en lugar de la misma lista con orden aleatorio, sólo un elemento de esa lista, podemos usar el modificador -n y el número de elementos. En este caso, el 1:
$ shuf -e red green blue -n 1 red $ shuf -e red green blue -n 1 blue
Para usarlo en un script, incluiremos la instrucción entre $() y la asignaremos a una variable:
#!/bin/bash color=$(shuf -e red green blue -n 1) echo $color