Générer un nombre aléatoire en bash

Générer un nombre aléatoire en bash
Le nombre qui est modifié dans chaque exécution de script est appelé nombre aléatoire, et il est imprévisible. Les nombres aléatoires sont utilisés dans la programmation à diverses fins, tels que le test des données, la génération de billets de loterie, la génération d'un mot de passe, etc. Le numéro entier ou le numéro flottant peut être utilisé pour générer un nombre aléatoire en bash. Le nombre aléatoire d'une plage spécifique ou d'une taille peut être généré à l'aide d'un script bash. Différentes façons de générer des nombres aléatoires dans Bash ont été montrés dans ce tutoriel.

Utilisation de générateur aléatoire:

Le nombre aléatoire ou une gamme de nombres aléatoires peuvent être générés en utilisant la variable aléatoire $. Il génère un nombre aléatoire entre 0 et 32767 par défaut. Mais vous pouvez définir la plage de nombres pour générer des nombres aléatoires en divisant la valeur de $ aléatoire avec une valeur spécifique. Différentes utilisations de la variable aléatoire $ pour générer des nombres aléatoires sont affichées dans la partie suivante du tutoriel.

Génération de nombres aléatoires en utilisant $ variable aléatoire:

Les moyens de générer le nombre aléatoire dans le terminal et d'exécuter un fichier de script sont affichés ici.

UN. Générer des nombres aléatoires à partir du terminal

Exécutez la commande suivante pour générer un nombre aléatoire dans la plage 0 à 32767.

$ echo $ aléatoire

Vous pouvez générer un nombre aléatoire d'une plage spécifique en divisant la variable aléatoire $ avec une valeur particulière et en obtenant la valeur reste. Exécutez la commande suivante pour générer un nombre aléatoire dans la plage de 1 à 50. Ici, les doubles premiers supports avec $ ont été utilisés.

$ echo $ (($ random% 50 + 1))

Exécutez la commande suivante pour générer un nombre aléatoire dans la plage de 10 à 40. Ici, le troisième support avec $ a été utilisé.

$ echo $ [$ random% 40 + 10]

B. Générer des nombres aléatoires en utilisant le script

Créez un fichier bash avec le script suivant pour générer un nombre aléatoire de la plage spécifique où les valeurs de plage minimum et maximale seront tirées de l'utilisateur. Un message d'erreur sera affiché si la valeur maximale prise est inférieure à la valeur minimale. Si la différence entre le maximum et la valeur minimale est 1, un autre message d'erreur sera affiché. Un nombre aléatoire sera généré dans chaque exécution de ce script si les valeurs minimales et maximales valides seront prises en entrée.

#!/ bac / bash
# Générer une plage basée sur le hasard définie par l'utilisateur
#Take la valeur inférieure et la valeur supérieure de l'utilisateur
Echo "Entrez la valeur minimale:"
Lire minimum
Echo "Entrez la valeur maximale:"
Lire maximum
#Check les valeurs prises sont valides
Si [[$ maximum < $minimum ]]; then
Echo "La valeur maximale ne peut pas être inférieure à la valeur minimale"
sortie 1
Fi
#Find la différence entre les nombres
diff = $ (($ maximum- $ minimum))
#Check la valeur de différence
si [[$ diff == 1]]; alors
écho "La plage de nombres doit être supérieure à 1"
sortie 1
Fi
# GENERETER le nombre aléatoire
randomNumber = $ (($ minimum + $ aléosé% $ maximum)))
# Print le numéro généré
Echo "Le nombre aléatoire généré est: $ randomNumber"

La sortie suivante apparaîtra si le script est exécuté plusieurs fois. Ici, le script ci-dessus a été exécuté trois fois. Le message d'erreur a été imprimé pour les deux premières exécutions pour une entrée non valide, et un nombre aléatoire a été généré pour la dernière exécution.

Génération de nombres aléatoires à l'aide de la commande 'shuf':

L'utilisation de la commande 'shuf' est une autre façon de générer le nombre aléatoire d'une plage spécifique. Les moyens de générer un nombre aléatoire à partir du terminal et d'utiliser un script ont été affichés dans ce tutoriel.

UN. Générer des nombres aléatoires à partir du terminal

Exécutez la commande suivante pour générer un nombre aléatoire entre 0 et 50 en utilisant la commande 'shuf'.

$ shuf -i 0-50 -N1

Selon la sortie suivante, la commande ci-dessus a été exécutée trois fois, et trois nombres aléatoires ont été générés.

B. Générer des nombres aléatoires en utilisant le script

Créez un fichier bash avec le script suivant pour générer une liste de nombres aléatoires en fonction de la valeur d'entrée. La boucle 'for' a été utilisée pour exécuter la commande 'shuf' plusieurs fois pour générer la liste des nombres aléatoires entre 1 et 100 et imprimer les nombres.

#!/ bac / bash
# Générez une commande aléatoire en utilisant 'shuf'
écho "Combien de nombres aléatoires souhaitez-vous générer?: "
Numéro de lecture
# Print les nombres aléatoires générés
Echo "Les nombres aléatoires générés sont:"
pour n dans 'seq "$ numéro"'
faire
randomNumber = $ (shuf -i 1-100 -N1)
Echo $ randomnumber
fait

La sortie suivante montre que 5 a été considérée comme la valeur d'entrée, et 5 nombres aléatoires ont été générés, qui ne sont pas supérieurs à 100 et pas moins de 1.

Génération de nombres aléatoires en utilisant / dev / urandom:

Le / dev / urandom peut être utilisé avec différentes commandes pour générer différents types de valeurs aléatoires. Il ne peut pas être utilisé pour spécifier les valeurs de plage comme la commande 'shuf' et la variable aléatoire. Mais le nombre de chiffres du nombre aléatoire peut être défini en commande avec / dev / urandom. L'utilisation de la commande 'OD' avec / dev / urandom s'est montrée dans la partie suivante de ce tutoriel. Cette commande peut être utilisée pour spécifier le nombre d'octets où chaque octet peut être défini par un nombre décimal dans les 0 à 255.

Exécutez la commande suivante pour générer un nombre aléatoire entre 0 et 255.

$ od -a n -t d -n 1 / dev / urandom

La sortie montre que la commande ci-dessus a été exécutée trois fois, et trois nombres aléatoires différents ont été générés ici où les valeurs ne dépassent pas 255.

Conclusion:

Trois façons différentes de générer des nombres aléatoires ont été expliqués dans ce tutoriel en utilisant divers exemples. Le codeur peut générer une gamme spécifique de nombres aléatoires en utilisant la variable aléatoire ou la commande «shuf» en bash. Le codeur peut utiliser / dev / urandom avec toute autre commande pour générer un nombre aléatoire d'octets ou de longueurs particuliers. La génération de nombres aléatoires est une exigence très courante pour la programmation, et j'espère que les lecteurs pourront générer un nombre aléatoire en fonction de leurs exigences après avoir lu ce tutoriel.