Definir variável para item aleatório no array

3

No bash, tenho um array contendo uma lista de links, por exemplo

http://xkcd.com/archive
http://what-if.xkcd.com/
http://blag.xkcd.com/
http://store.xkcd.com/

Eu também tenho uma variável chamada $ URL. Gostaria de definir a variável $ URL como um item aleatório na lista.

    
por Julian Lachniet 24.05.2016 / 23:33

1 resposta

5

Você pode usar a variável RANDOM definida por bash:

URL=${URLLIST[ $(( RANDOM % ${#URLLIST[@]} )) ] }

onde URLLIST é a matriz que contém seus URLs:

URLLIST=( \
    "http://xkcd.com/archive" \
    "http://what-if.xkcd.com/" \
    "http://blag.xkcd.com/" \
    "http://store.xkcd.com/" \
)
    
por 24.05.2016 / 23:49