Génération de caractères non alphanumériques en bash

Le
Kevin Denis
Bonjour,

Je cherche a générer une suite d'octets pseudo aléatoire en bash.
Le but est de constituer un tableau:
variable=<valeur aleatoire>
variable2=<valeur aleatoire>
variable3=<valeur aleatoire>
variable4=<valeur aleatoire>
variable5=<valeur aleatoire>
(etc..)

La ou ca se complique, c'est que la valeur aléatoire ne doit pas être
que alphanumérique.

Or donc, comment générer en bash des caractères non-alphanumériques?

L'aléatoire est vaguement important, c'est à dire que $RANDOM est
acceptable.

Merci
--
Kevin
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane CHAZELAS
Le #11163071
2008-07-01, 14:21(+00), Kevin Denis:
[...]
Je cherche a générer une suite d'octets pseudo aléatoire en bash.
Le but est de constituer un tableau:
variable=<valeur aleatoire>
variable2=<valeur aleatoire>
variable3=<valeur aleatoire>
variable4=<valeur aleatoire>
variable5=<valeur aleatoire>
(etc..)

La ou ca se complique, c'est que la valeur aléatoire ne doit pas être
que alphanumérique.

Or donc, comment générer en bash des caractères non-alphanumériques?

L'aléatoire est vaguement important, c'est à dire que $RANDOM est
acceptable.


[...]

awk et printf("%c", int(rand() * 255 + 1)).

Note qu'une variable shell (autre que zsh) ne peut contenir le
caractere NUL (''). Les variables de gawk (au moins) peuvent.

--
Stéphane
Cyrille Lefevre
Le #11167021
Stephane CHAZELAS a écrit :
2008-07-01, 14:21(+00), Kevin Denis:
[...]
Je cherche a générer une suite d'octets pseudo aléatoire en bash .
Le but est de constituer un tableau:
variable=<valeur aleatoire>
variable2=<valeur aleatoire>
variable3=<valeur aleatoire>
variable4=<valeur aleatoire>
variable5=<valeur aleatoire>
(etc..)

La ou ca se complique, c'est que la valeur aléatoire ne doit pas ê tre
que alphanumérique.

Or donc, comment générer en bash des caractères non-alphanumér iques?

L'aléatoire est vaguement important, c'est à dire que $RANDOM est
acceptable.


[...]

awk et printf("%c", int(rand() * 255 + 1)).

Note qu'une variable shell (autre que zsh) ne peut contenir le
caractere NUL (''). Les variables de gawk (au moins) peuvent.





Salut,

*en bash il a dit* :P

echo -e "$(printf %o $(( RANDOM % ( 255 - 32 + 1 ) + 32 )))"

on décompose :

$(( RANDOM % ( 255 - 32 + 1 ) + 32 ))

retourne une valeur décimale entre 32 et 255

$(printf %o ...)

conversion décimale => octal

echo -e "..."

-e interprète les séquences xxx

en ksh, c'est presque plus simple, mais on est obligé de passer par une
variable intermédiaire :

typeset -i8 o=$(( RANDOM % ( 255 - 32 + 1 ) + 32 ))
echo "\0${o#8#}"

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Kevin Denis
Le #11170121
Le 01-07-2008, Stephane CHAZELAS
[...]
Je cherche a générer une suite d'octets pseudo aléatoire en bash.
Le but est de constituer un tableau:
variable=<valeur aleatoire>
variable2=<valeur aleatoire>
variable3=<valeur aleatoire>
variable4=<valeur aleatoire>
variable5=<valeur aleatoire>
(etc..)

La ou ca se complique, c'est que la valeur aléatoire ne doit pas être
que alphanumérique.

Or donc, comment générer en bash des caractères non-alphanumériques?

L'aléatoire est vaguement important, c'est à dire que $RANDOM est
acceptable.


[...]

awk et printf("%c", int(rand() * 255 + 1)).



Impeccable, merci.

Note qu'une variable shell (autre que zsh) ne peut contenir le
caractere NUL (''). Les variables de gawk (au moins) peuvent.



Ok. J'affinerai un peu alors.
--
Kevin
Kevin Denis
Le #11170331
Le 01-07-2008, Cyrille Lefevre a écrit :
L'aléatoire est vaguement important, c'est à dire que $RANDOM est
acceptable.


[...]

awk et printf("%c", int(rand() * 255 + 1)).



*en bash il a dit* :P



Effectivement, je suis imprécis. Ce que je souhaite, c'est un script
bash utilisant grosso modo ce qu'on trouve habituellement sur un
linux.

echo -e "$(printf %o $(( RANDOM % ( 255 - 32 + 1 ) + 32 )))"

on décompose :

$(( RANDOM % ( 255 - 32 + 1 ) + 32 ))

retourne une valeur décimale entre 32 et 255

$(printf %o ...)

conversion décimale => octal

echo -e "..."

-e interprète les séquences xxx



Ok, je conserve dans mes archives aussi. Merci
--
Kevin
Thierry B.
Le #11173681
--{ Kevin Denis a plopé ceci: }--

awk et printf("%c", int(rand() * 255 + 1)).



*en bash il a dit* :P



Effectivement, je suis imprécis. Ce que je souhaite, c'est un script
bash utilisant grosso modo ce qu'on trouve habituellement sur un
linux.



Voilà. Quand je confectionne un programme en Bash, je voudrais
quand même être certain qu'il fonctionne partout où on peut
installer un Bash récent. Si l'un d'entre vous est au courant
de soucis de portabilité, qu'il s'exprime maintenant, ou qu'il
se taise à jamais[*]


* bon, il peut revenir vendredi...


--
Why drink and drive when you can smoke and fly?
Cyrille Lefevre
Le #11176411
Thierry B. a écrit :
--{ Kevin Denis a plopé ceci: }--

awk et printf("%c", int(rand() * 255 + 1)).


*en bash il a dit* :P



Effectivement, je suis imprécis. Ce que je souhaite, c'est un script
bash utilisant grosso modo ce qu'on trouve habituellement sur un
linux.



Voilà. Quand je confectionne un programme en Bash, je voudrais
quand même être certain qu'il fonctionne partout où on peut
installer un Bash récent. Si l'un d'entre vous est au courant
de soucis de portabilité, qu'il s'exprime maintenant, ou qu'il
se taise à jamais[*]

* bon, il peut revenir vendredi...



Bonjour,

change de shell alors car bash est truffé de bugs dont certains biens
connus traverses les années et les versions !

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Publicité
Poster une réponse
Anonyme