Récupérer un nom et un prénom aléatoire en Bash

Publié le 03 décembre 2009 par Lb01

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 ;-).