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

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.