Découvrir l'écriture de scripts en Bash

Traiter une liste

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Voyez comment traiter une liste en retour, et notamment, comment itérer à l'aide d'une autre syntaxe de l'instruction for.
05:41

Transcription

Maintenant, il ne nous reste plus qu'à lire getCepages et à le spliter. On a fait une sorte de join ici, on a mis des barres verticales. Il faut maintenant qu'on découpe de l'autre côté. Comment on va faire ça ? Alors, on a une syntaxe à base de read qui va utiliser un here string. Je vous montre. Déjà, je vais prendre le résultat de mon getCepages ici, je vais le mettre dans une variable, par exemple, que je vais appeler liste et je vais traiter cette variable en tant que here string, c'est-à-dire, en tant que chaîne présente que je peux utiliser comme source de mon read, avec une syntaxe type here string à trois redirections. Je vous montre, ça va être plus pratique. Mon IFS local va être changé en ceci. Ça veut dire, maintenant, mon séparateur, localement pour le read que je mets juste après, ça va être la barre verticale. Je peux utiliser cette syntaxe où je dis r, a ; je vais traiter un array. Et je mets r aussi, c'est une protection pour dire que les backslashes ne vont pas être considérés comme des caractères d'échappement. Donc, si jamais j'ai un backslash à l'intérieur, il sera pris littéralement. Ça, c'est une protection qu'on utilise assez souvent. Et le a, ça veut dire que la variable qu'on va faire, c'est un array et qu'on va lui intégrer les éléments les uns après les autres. Donc, je vais appeler ma variable cep et puis, il ne me reste plus qu'à faire la redirection. Inutile de faire une boucle ici, puisque j'ai utilisé le a, donc, il va y avoir une sorte de boucle implicite qui va injecter tout ce qu'on trouve séparé dans cet array, dans cette liste ici. Et je vais utiliser ma syntaxe triple chevrons pour dire que ce que je veux en entrée, c'est un here string. Donc, je vais prendre une chaîne en entrée et la chaîne, ce sera simplement la liste. On va voir si ça marche. C'est un peu bizarre, je vous l'accorde, mais, tout est bizarre dans le bash, finalement. Et je vais voir si ça marche. Donc, je vais simplement faire un echo, déjà, de mon cep. Et j'ai Merlot. Vous voyez que Merlot, c'est le premier. C'est pas mal. On va regarder la taille. Et pour regarder la taille d'une liste, on va utiliser cette syntaxe. Je prends ici, la liste, toute la liste, vous vous souvenez, comme ceci et puis, je me rajoute, ici, le même caractère que j'utilise pour calculer la longueur d'une chaîne, c'est-à-dire, le dièse pour dire : trouve-moi la longueur de la liste. On va voir si ça nous donne quelque chose d'intéressant. Oui, sept. Effectivement. On a bien sept éléments. Donc, on sait récupérer une liste. Maintenant, je pourrais l'utiliser dans un for in pour récupérer chaque élément. On peut faire ça, juste pour la démonstration. Donc, for c in, pour reprendre ça, et on n’est pas loin de ce qu'il nous faut, on fait un petit join, J majuscule. On VIM. On enlève, ça, ça et c'est tout. Et puis, do, done et puis, enfin je vais pouvoir faire un echo de mon cépage est c et ça va enfin être correct. Tout va bien. Un petit make et... ça ne marche pas, mon cépage est Cabernet Franc, quand même. Donc, il va falloir que je gère ça différemment dans mon for. Parce que mon for a repris, maintenant, l'idée de l'espace. Il faut que je le gère encore différemment car il y a une sorte d'effet de bord dans le for. Et je vais faire un for différent. Ça va me permettre de vous montrer l'autre syntaxe du for. Syntaxe classique. Il faut mettre deux parenthèses ouvrantes, deux parenthèses fermantes. Ensuite, je vais dire : i est égal à 0. Donc, je prends une variable, interne à mon for, que j'initialise. Ensuite, i est plus petit que la longueur, je vais reprendre ça. Je vais faire un petit join. Je m'amuse en VIM, comme vous pouvez le voir. Donc, voilà. Ensuite, je vais enlever ça. i++. Donc, si vous connaissez des langages de programmation, c'est assez familier. Je ferme mes deux parenthèses, je fais un do et un done. Qu'est-ce que je viens de faire ? Je viens de faire un for où je prends une variante interne que je commence à initialiser à zéro. Ensuite, elle va augmenter à chaque itération et puis, je m'arrête au moment où i est égal à la longueur de mon array. Et ensuite, ce que je vais faire ici, je vais reprendre mon echo et puis, je vais prendre index par index. Donc, mon cépage est c et maintenant, je veux l'index i, évidemment. Et on met ça en commentaire, de façon à ce que ça ne nous embête plus. Et on va voir ce que ça donne. Alors, évidemment, ce n'est pas c, c'est cep. Il faut suivre. Donc, j'ai cep de i, puisque c'est la variable que j'ai créé ici, n'est-ce pas ? Ce n'est pas étonnant qu'il n'y avait rien. Et voilà, enfin j'ai mon Cabernet Franc avec un espace. Donc, vous voyez que de temps en temps, il faut un petit peu souffrir. Ou disons qu'il faut un peu chercher et qu'on a quand même pas mal d'effet de bord dans le bash. Donc, voilà la syntaxe du for, qui va vous permettre d'itérer, de générer un itérateur, finalement et de référencer par l'index. Et on évite l'effet de bord qu'on a eu ici avec le for in, qui utilise l'IFS ici, qui a utilisé l'IFS d'espace et qui a donc, redécoupé à l'intérieur de mon array pour en faire un élément supplémentaire. J'évite, avec ça.

Découvrir l'écriture de scripts en Bash

Prenez en main l'écriture de scripts en Bash. Recevez et traitez les paramètres envoyés à vos scripts, manipulez des variables, découvrez les fonctions intégrées du Bash, etc.

1h41 (22 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :21 févr. 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !