Salut à tous, c'est Florian du site IT-Connect, bienvenue dans cette nouvelle vidéo dédiée au
Scripting Bash, une nouvelle fois. Aujourd'hui nous allons nous intéresser à la saisie
utilisateur, ce qui va être très intéressant si on veut créer des scripts interactifs o�
on va demander à l'utilisateur de saisir une ou plusieurs informations. Cela peut être un
nom d'utilisateur, un mot de passe, un chemin vers un fichier, vers un dossier, etc. Tout ce que
l'on veut. Cela va être très intéressant pour demander à l'utilisateur de saisir quelque chose
sans pour autant lui demander d'aller modifier la valeur d'une variable dans un script, etc. Là
on va rester dans le shell, on va lancer notre script et on va simplement renseigner les
informations qui nous sont demandées. Dans cette vidéo, ce sera intégralement de la démo, mais
avant de passer à la suite, pensez à vous abonner à la chaîne YouTube IT-Connect. Alors comment faire une saisie utilisateur en Scripting Bash ? En fait, on va utiliser
l'instruction read. L'instruction read, que l'on va pouvoir découvrir tout de suite avec un premier
exemple, va s'utiliser de la façon suivante. On va mettre le mot-clé read et derrière
tout simplement, la variable à laquelle on veut affecter la saisie de l'utilisateur
En fait, l'information saisie par l'utilisateur. On va mettre avant une information pour dire �
l'utilisateur que voilà ce que l'on attend comme donné pour le guider. Le read pour demander la
saisie et à la fin, on va tout simplement faire bonjour et on va rappeler la variable de leur
prénom. Puisqu'ici, on va demander à l'utilisateur de saisir son prénom. On va lancer ce premier
script comme ceci. Saisissez votre prénom, donc là je dois bien renseigner quelque chose. Je mets
ma valeur, je fais entrer, je valide. Ensuite, j'ai bien récupéré la saisie dans une variable et
cette variable, je l'ai tout simplement affichée dans un message. Maintenant, on va voir que l'on
peut aussi demander la saisie de plusieurs informations. C'est pour ça que j'ai mis
saisissez votre prénom et votre nom. Après, j'ai deux variables. J'ai read prénom et le nom derrière
C'est-à-dire que l'on ne va pas avoir deux prompt différents pour saisir le prénom puis le nom
Dans un seul prompt, on va mettre directement notre prénom, espace, notre nom et le bach va
être capable d'associer la première valeur à la première variable et la seconde valeur à la
seconde variable. C'est pour ça qu'après j'ai fait un bonjour, j'ai remis le prénom et le nom
Après, je vais bien mettre indépendamment prénom, deux points, le prénom qui a été saisi et pareil
pour le nom. On va voir tout de suite ce que ça donne. On va exécuter le script. Là, il demande
votre prénom et votre nom. Je vais mettre les informations. Je fais entrer. Là, j'ai bien
bonjour et derrière l'information complète qui a été saisie, les deux variables. Le prénom
j'ai bien Florian qui est retourné et le nom, j'ai bien mon nom qui est retourné, qui est bien
visible ici à l'écran. On comprend bien qu'avec un seul read, on peut alimenter plusieurs variables
Maintenant, on va mettre en pratique le read en le couplant avec les boucles while. C'est ce que
l'on avait vu dans la précédente vidéo. Ça, ça va être très intéressant puisqu'en fait
si on demande à l'utilisateur de saisir une information, mais qu'on a impérativement besoin
de saisir l'information, il faut s'assurer qu'on ne puisse pas mettre une chaîne vide. Puisqu'effectivement
si je relance mon script 1 par exemple, ici je fais juste entrer. Du coup, j'ai bonjour avec
une chaîne vide, ce qui peut être un réel problème si on attend un mot de passe, un identifiant
etc. Comment on va pouvoir faire en sorte de s'assurer que la chaîne n'est pas vide ? On va
coupler l'utilisation du read avec le while. En fait, ce que l'on va dire ici, c'est que tant que
la variable de la username est vide, on va demander la saisie d'un identifiant. Là
j'ai mon read username. C'est la variable username qui est ici, qui est bien réutilisée dans la
condition du while. On va voir en pratique ce que ça donne. J'exécute le script. Vous voulez saisir
votre identifiant ? Je ne mets rien, je ne mets encore rien. J'appuie sur entrer, il me redemande
bien en boucle. Là, je mets Florian par exemple. Et là, identifiant sélectionné, Florian, on quitte
bien la boucle, puisqu'il y a une valeur qui a été saisie. C'est vraiment très intéressant
comme syntaxe pour vous assurer qu'on ne puisse pas vous envoyer des chaînes vides dans une saisie
utilisateur. Nous allons terminer avec un dernier exemple qui va nous permettre de faire de la saisie
de mots de passe. C'est à dire que là, on voit que quand j'écris dans la console ma saisie
utilisateur, vous voyez directement à l'écran ce que je saisis. Si on veut saisir un mot de passe
c'est un peu gênant. Ce que l'on va pouvoir faire, c'est rajouter l'option "-s read". Ici
j'ai déclaré une variable password, ce qui fait qu'on va cacher la saisie utilisateur. On pourra
saisir un mot de passe sans qu'il soit directement visible, ce qui n'empêche pas par contre d'aller consulter la variable password et d'afficher le mot de passe en question. Je vais vous rajouter
un écho sur le dollar password, on va quand même l'afficher ce fameux mot de passe. Je vais
exécuter le script, saisissez votre mot de passe. Je mets un mot de passe, je vais faire rentrer. On
voit bien que j'ai saisi quelque chose, mais on n'a rien du tout qui est visible à l'écran, on n'a même pas les petits astérisques pour voir éventuellement la longueur du mot de passe ou voir
qu'on est bien en train de saisir. Mais il y a bien eu une saisie, le mot de passe est stocké en
mémoire et j'ai simplement retourné le mot de passe que je viens de saisir. Password avec un
arrow base et un point d'exclamation à la fin. On voit que la variable est accessible, elle n'est
pas protégée en soi, par contre la saisie d'utilisateur a été améliorée puisqu'on a
masqué l'affichage dans la console de l'information. Voilà, après avoir regardé cette vidéo vous
devriez être en mesure d'intégrer de la saisie utilisateur dans vos script bash. J'espère que
ça vous a plu, n'hésitez pas à poser vos questions en commentaire, n'hésitez pas aussi à partager et
à liker, puis à regarder aussi les autres vidéos de la chaîne YouTube et aussi celle de la playlist
dédiée au scripting bash. J'ai plus 20 mois, je vous dis à très vite, ciao