Shell Script, mélangé un tableau

Fermé
anonyme - 2 janv. 2009 à 01:23
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 2 janv. 2009 à 11:27
Bonjour,
voila je voulais savoir si vous connaissiez un moyen pour mélanger un tableau a savoir:
si tableau=( 1 2 3 4 5 )

comment faire pour avoir par exemple:
tableau=( 4 3 5 1 2 ) ??

je n'y arrive pas je fais des boucles de partout, des for des while, j'utilise des $RANDOM mais je n'arrive pas a n'avoir qu'une seule fois le meme numéro :(


voila je ne sais pas si quelqu'un saurais m'aider mais je pose tout de meme mon probleme ici :)
merci d'avance
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
2 janv. 2009 à 11:27
Salut,
[tmpfs]$ tableau=( 1 2 3 4 5 6 7 8 9 )
[tmpfs]$ num_var=${#tableau[*]}
[tmpfs]$ echo ${tableau[$((RANDOM%num_var))]}

Ce n'est pas la solution à ton problème, mais on s'en approche un peu dans la mesure où chaque "echo ${tableau[$((RANDOM%num_var))]}" est sensé renvoyer un nombre au hasard parmi ceux du tableau ;-))
1
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 608
2 janv. 2009 à 01:40
Logiquement, il te suffit de faire une boucle allant de 1 jusqu'au nombre d'éléments du tableau, et pour chaque élément x trouvé, remplacer x par un nombre aléatoire.


0
oui mais le truc, c'est qu'en faisant ceci, je retombe en general sur le meme nombre exemple:

avant: tab=( 1 2 3 4 5 6 )
aprés: tab=( 5 1 3 5 2 4 )

les nombres se répétent :/
0