Sous shell lorsqu'on fait un pipe?
gnugo
-
gnugo -
gnugo -
Bonjour,
j'ai un problème que je ne parviens pas à comprendre ni à résoudre:
Quand je fais des:
echo $RANDOM
j'obtiens des nombres différents à chaque éxécution.
Par contre en faisant:
echo $RANDOM | cat
j'obtiens toujours le même résultat ( qui correspond au prochain "echo $RANDOM" dans mon shell )
j'en déduis que chaque "echo $RANDOM | cat" crée un sous-shell à chaque fois, tous dans le même état que mon shell actif, donc j'obtiens toujours le même nombre qui est le prochain de mon shell actif...)
Comment cela se fait il?
Comment, en ligne de commande, remédier au problème et envoyer à chaque exécution des valeurs différentes de $RANDOM dans un pipe ?
merci d'avance!
j'ai un problème que je ne parviens pas à comprendre ni à résoudre:
Quand je fais des:
echo $RANDOM
j'obtiens des nombres différents à chaque éxécution.
Par contre en faisant:
echo $RANDOM | cat
j'obtiens toujours le même résultat ( qui correspond au prochain "echo $RANDOM" dans mon shell )
j'en déduis que chaque "echo $RANDOM | cat" crée un sous-shell à chaque fois, tous dans le même état que mon shell actif, donc j'obtiens toujours le même nombre qui est le prochain de mon shell actif...)
Comment cela se fait il?
Comment, en ligne de commande, remédier au problème et envoyer à chaque exécution des valeurs différentes de $RANDOM dans un pipe ?
merci d'avance!
A voir également:
- Sous shell lorsqu'on fait un pipe?
- Classic shell - Télécharger - Personnalisation
- Ssh secure shell download - Télécharger - Divers Web & Internet
- Shell startup windows 10 - Guide
- Shell infrastructure host c'est quoi - Guide
- Efi shell version 2.31 - Forum Programmation
9 réponses
J'ai créé un script "essai.sh" pour tester:
Et voici le résultat que j'obtiens:
#!/bin/bash echo $RANDOM echo $RANDOM echo $RANDOM | cat echo $RANDOM | cat echo $RANDOM echo $RANDOM
Et voici le résultat que j'obtiens:
$ ./essai.sh 1662 10022 6291 6291 6291 10791
Salut,
Idem pour moi, comme mes collègues mamiemando et dubcek, pas de problème ;-)
Est-ce qu'avec "cat <<<$RANDOM" à la place de "echo $RANDOM | cat" tu as toujours le même résultat ?
Idem pour moi, comme mes collègues mamiemando et dubcek, pas de problème ;-)
Est-ce qu'avec "cat <<<$RANDOM" à la place de "echo $RANDOM | cat" tu as toujours le même résultat ?
Une méthode plus violente qui pourrait marcher et basée sur /dev/random :
http://www.christopher.compagnon.name/sitewww/shell-gennumber.html
.. car pour moi la réinitialisation de $RANDOM dépend de ton shell, tandis que /dev/random est gérée par des couches plus basses.
Bonne chance
http://www.christopher.compagnon.name/sitewww/shell-gennumber.html
.. car pour moi la réinitialisation de $RANDOM dépend de ton shell, tandis que /dev/random est gérée par des couches plus basses.
Bonne chance
Pour ma part :
Du coup je n'ai pas compris le problème.
(mando@aldur) (~) $ echo $RANDOM 26483 (mando@aldur) (~) $ echo $RANDOM 22861 (mando@aldur) (~) $ echo $RANDOM | cat 32160 (mando@aldur) (~) $ echo $RANDOM | cat 16745 (mando@aldur) (~) $ echo $RANDOM | cat 15298
Du coup je n'ai pas compris le problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hello
j'ai des résultats différents
j'ai des résultats différents
$ cat f1 #!/bin/bash echo $RANDOM echo $RANDOM echo $RANDOM | cat echo $RANDOM | cat echo $RANDOM echo $RANDOM $ ./f1 5393 14970 816 27615 9518 31088 $
autre exemple
$ seq 1 10 | xargs -L1 bash -c "echo $RANDOM" 7593 7593 7593 7593 7593 7593 7593 7593 7593 7593 $ $ seq 1 10 | xargs -L1 bash -c 'echo $RANDOM' 8097 13743 12160 24067 17692 28401 15929 2341 31589 7570 $
cat <<<$RANDOM me donne également le même résultat à chaque fois!!
En fait j'ai posté ici pour essayer de comprendre pourquoi mon shell agit de cette façon, mais oui je pourrais m'en sortir avec /dev/random ou autre.
Auriez vous une idée de ce qui pourrait causer ces résultats? Je ne trouve pas:\
En fait j'ai posté ici pour essayer de comprendre pourquoi mon shell agit de cette façon, mais oui je pourrais m'en sortir avec /dev/random ou autre.
Auriez vous une idée de ce qui pourrait causer ces résultats? Je ne trouve pas:\
Je viens de m'apercevoir que quand je lance un nouveau shell, cela fonctionne! j'ai bien des résultats différents!
Par contre des que je fais un simple echo $RANDOM, je reviens à ma situation anormale!
Voyez vous même...
essai.sh
essai2.sh
Comment est-ce possible?
Avez vous les mêmes résultats ?
Par contre des que je fais un simple echo $RANDOM, je reviens à ma situation anormale!
Voyez vous même...
essai.sh
#!/bin/bash cat <<<$RANDOM cat <<<$RANDOM cat <<<$RANDOM echo $RANDOM echo $RANDOM cat <<<$RANDOM cat <<<$RANDOM cat <<<$RANDOM $ ./essai.sh 12634 387 31718 16059 7528 21592 21592 21592
essai2.sh
#!/bin/bash echo $RANDOM | cat echo $RANDOM | cat echo $RANDOM | cat echo $RANDOM echo $RANDOM echo $RANDOM | cat echo $RANDOM | cat echo $RANDOM | cat $ ./essai2.sh 32552 31451 18744 16255 16297 11011 11011 11011
Comment est-ce possible?
Avez vous les mêmes résultats ?
quelle version du shell ?
bash --version
Pourquoi tu n'essaies pas comme je te l'ai déjà suggéré une solution basée sur /dev/random ?
https://forums.commentcamarche.net/forum/affich-23445271-sous-shell-lorsqu-on-fait-un-pipe#9
Bonne chance
https://forums.commentcamarche.net/forum/affich-23445271-sous-shell-lorsqu-on-fait-un-pipe#9
Bonne chance