Pages : 1
#1 Le 01/09/2011, à 23:15
- noo7
[Résolu] Commande random
Bonsoir,
j'essaye d'écrire un petit script qui prend une valeur "aléatoire" (dans mes recherche j'ai lu qu'il ne pouvait pas vraiment y avoir d'aléatoire en informatique) entre deux variables.
J'ai trouvé une commande qui a l'air pas mal ici : http://leeroy.kodingen.com/blog/linux/g … s-en-bash/
Mais lorsque je l’exécute le script me revoie cette erreur : Syntax error: "(" unexpected (expecting "done")
#!/bin/sh
while [ $max -le $min ]
do
echo "Entrez le temps minimun de la méditation (en minutes) :"
read min
echo "Entrez le temps maximun souhaité pour la méditation (en minutes) :"
read max
done
nombre=0
while [ $nombre -le $min ]
do
number=$[($RANDOM % ($[$max - $min] + 1)) + $min]
done
echo "Nombre aléatoire compris entre $min et $max --- $nombre"
echo
#temps=$nombre*60
#wait $temps
#vlc Together.mp3
Merci.
Ps : Je suis une quiche en programmation , y'a certainement des choses qui ne vont pas dans ce script.
Dernière modification par noo7 (Le 02/09/2011, à 10:19)
Hors ligne
#2 Le 02/09/2011, à 00:10
- Levi59
Re : [Résolu] Commande random
Plusieurs erreur:
-Déjà, la commande de base est fausse. (du moins elle fonctionne pas chez moi)
Les opérations se font forcement sous la forme "$(( opérations ))"
-Ensuite si c'est censé utiliser une variable de bash, pourquoi mettre /bin/sh?
-Enfin, pourquoi mettre une boucle while sur la commande? Ça n'a aucun intérêt...
#!/bin/bash
while [ $max -le $min ]
do
echo "Entrez le temps minimun de la méditation (en minutes) :"
read min
echo "Entrez le temps maximun souhaité pour la méditation (en minutes) :"
read max
done
nombre=$(( ($RANDOM % (($max - $min) + 1)) + $min ))
echo "Nombre aléatoire compris entre $min et $max --- $nombre"
echo
Hors ligne
#3 Le 02/09/2011, à 00:31
- sputnick
Re : [Résolu] Commande random
Voici une fonction condensée qui affiche un chiffre aléatoire entre min et max :
$ displayRandomNumberFromInterval() { echo $(( ( RANDOM % ($2 - $1 +1 ) ) + $1 )); }
$ displayRandomNumberFromInterval 10 15
13
Dernière modification par sputnick (Le 02/09/2011, à 00:31)
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#4 Le 02/09/2011, à 10:14
- noo7
Re : [Résolu] Commande random
-Ensuite si c'est censé utiliser une variable de bash, pourquoi mettre /bin/sh?
Je ne sais pas, je vais me renseigner sur le sujet.
-Enfin, pourquoi mettre une boucle while sur la commande? Ça n'a aucun intérêt...
Oui j'ai relu script et cette boucle est inutile.
Sinon ça fonctionne maintenant :
#!/bin/bash
while [ $max -le $min ]
do
echo "Entrez le temps minimun de la méditation (en minutes) :"
read min
echo "Entrez le temps maximun souhaité pour la méditation (en minutes) :"
read max
done
nombre=$(( ($RANDOM % (($max - $min) + 1)) + $min ))
echo
temps=$(($nombre * 60))
sleep $temps
vlc Together.mp3
Sputnick je vais essayer de le faire avec ta fonction pour le fun.
Merci à vous deux !
Dernière modification par noo7 (Le 02/09/2011, à 10:18)
Hors ligne
#5 Le 02/09/2011, à 12:29
- ehmicky
Re : [Résolu] Commande random
Salut,
Attention, $RANDOM est limité à un range de 0 à 32767 (15 bits). Si tu veux un range plus grand, tu peux par exemple remplacer $RANDOM par :
$(hexdump -n32 -e '"%u"' /dev/urandom)
ici pour 32 bits.
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#6 Le 02/09/2011, à 16:08
- noo7
Re : [Résolu] Commande random
merci je garde ça dans un coin
Hors ligne