Voici une autre astuce qui peut s’avérer très pratique dans certains cas : récupérer un nom et un prénom aléatoire en Bash grâce à quelques fonctions indispensables !
Comment allons-nous procéder ?
Nous allons utiliser un service web qui va se charger de nous générer le nom et prénom aléatoire que nous extrairons ensuite pour les avoir dans deux variables distinctes.
Récupération du nom et prénom aléatoire
Commençons donc pas le commencement, la récupération du contenu retourné par le service web (disponible à cette adresse : http://www.thenamegenerator.com/nameGeneratorHandler.php?g=m) :
result=$(curl "http://www.thenamegenerator.com/nameGeneratorHandler.php?g=m")
Ajoutons y maintenant la séparation du nom et du prénom à l’aide d’un grep.
Nous allons simplement lui dire de ne récupérer que les chaines de caractères alphanumériques (chiffres et nombres), il les séparera ensuite par des retours à la ligne :
result=$(curl "http://www.thenamegenerator.com/nameGeneratorHandler.php?g=m" | grep "[[:alnum:]]*" -o)
Séparation en deux variables
Il ne nous reste maintenant plus qu’à séparer notre nom et prénom en deux variables à l’aide d’un cut.
Nous allons couper la chaine $result à chaque retour à la ligne et placer le deuxième (-f2) et troisième (-f3) résultat dans des variables séparées (le retour à la ligne après -d " est nécessaire, si vous l’enlevez ça ne fonctionnera plus ;-)) :
firstName=$(echo "$result" | cut -d" " -f2) lastName=$(echo "$result" | cut -d" " -f3)
Et voilà ! Le tour est joué !
Code final
result=$(curl "http://www.thenamegenerator.com/nameGeneratorHandler.php?g=m" | grep "[[:alnum:]]*" -o) firstName=$(echo "$result" | cut -d" " -f2) lastName=$(echo "$result" | cut -d" " -f3) echo "Prenom : $firstName" echo "Nom : $lastName"
Et s on plaçait tout ça dans un fichier exécutable ?
Rien de plus simple !
Créez un nouveau fichier où bon vous semble :
cd /ou/bon/vous/semble/ nano randomName.sh
Placez-y ceci à l’intérieur (notez l’ajout de #!/bin/bash au début afin que le système l’execute comme un script bash et de exit 0 à la fin pour signaler au système que l’execution du script est terminée) :
#!/bin/bash result=$(curl "http://www.thenamegenerator.com/nameGeneratorHandler.php?g=m" | grep "[[:alnum:]]*" -o) firstName=$(echo "$result" | cut -d" " -f2) lastName=$(echo "$result" | cut -d" " -f3) echo "Prenom : $firstName" echo "Nom : $lastName" exit 0
Fermez le fichier (Ctrl + O et Ctrl + X).
Et pour finir rendez-le exécutable :
chmod 755 randomName.sh
Il ne vous reste plus qu’à l’exécuter et à admirer le résultat !
./randomName.sh
Enjoy ! ;-)
Liens utiles
- http://www.thenamegenerator.com/
Remerciements
Merci à Rorist pour le lien vers le service web ;-).