Découvrir l'écriture de scripts en Bash

Déclarer des listes

Testez gratuitement nos 1270 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous pouvez utiliser des listes en plus des variables scalaires. Vous allez voir comment les implémenter.
05:09

Transcription

Outre les variables traditionnelles, c'est-à-dire des variables qu'on appelle scalaires en général, qui contiennent une valeur, on peut également en bash définir des listes contenues dans des variables. Par exemple, je vais définir une liste ici, =. On s'en souvient, sans espace encore une fois. Et puis, pour définir une liste assez simplement, je peux utiliser cette notation qui est assez classique : j'ouvre et je ferme des parenthèses, et à l'intérieur, je vais lister les éléments de ma liste. Je ne vais pas utiliser, comme parfois dans d'autres langages, des virgules pour séparer chaque élément, mais simplement des espaces. Et puis si j'ai besoin de faire en sorte qu'une chaine contienne des espaces, je la mettrais entre guillemets. On va faire une liste de ces pages : par exemple cabernet. On va mettre pinot, on va mettre du riesling. Voilà. Et puis on va faire un petit echo. Alors, on va faire un echo de quoi ? On va essayer la variable elle-même. Qu'est-ce qui va sortir de ça ? Vous voyez que j'ai ici cabernet. Alors, qu'est-ce que ça veut dire ? Que lorsque j'appelle la variable elle-même, on prend en fait le premier élément. Comment est-ce que je peux d'ailleurs définir les différents éléments ? Eh bien, je vais utiliser une notation également assez classique qui va me permettre d'exprimer l'index ensuite. Alors par exemple : index 0. Mais je n'ai pas besoin de le faire d'ailleurs cette notation index 0. On a vu qu'on pouvait appeler la variable elle-même, et qu'il prenait la position 0. Donc on est en base 0 ici bien sûr. La première position, le premier élément de la liste, c'est l'élément 0. Ensuite, pinot : 1, riesling : 2. Donc je pourrais plutôt récupérer, voilà, l'élément 2 qui serait ici riesling. Alors attention, cette syntaxe, vous allez voir ce que ça donne, n'est pas la bonne parce que j'ai ici cabernet[2], vous voyez ? Qu'est-ce qui s'est passé ? On a pris ici $. Bash a compris qu'il fallait prendre une variable. On a vu liste : il a compris qu'il fallait prendre la variable liste. Mais ensuite on a un caractère spécial. Donc le bash ne va pas intégrer ce caractère spécial dans la variable. On a vu qu'il fallait utiliser des accolades. Et donc ici, il y a un remplacement avec le premier élément cabernet et on ajoute [2] ensuite. Donc évidemment, on doit utiliser notre syntaxe à base d'accolades comme ceci pour dire au bash exactement ce qu'on veut obtenir. Et on a ici riesling, vous voyez. Donc on peut mentionner comme ça un élément de la liste. On peut aussi modifier un élément de la liste. Si je fais comme ceci, 2 par exemple, et vous voyez, chaque fois qu'on fait une affectation avec l'égalité, on ne va pas mettre le $ devant. On ne met le $ que quand on lit. Donc je vais faire une affectation liste[2]. Et vous voyez que je ne protège pas non plus par des accolades. Je n'ai pas besoin, la syntaxe est compréhensible pour le bash. Je vais mettre par exemple malbec. Et je vais regarder maintenant le résultat : riesling avant, malbec ensuite. Très bien. Comment peut-on obtenir tous les éléments de la liste ? Oui, ça c'est une bonne question parce que si je fais un echo $liste, je sais que cette syntaxe me permet d'avoir le premier élément, ce qui est assez pratique. Mais lorsque je veux avoir tous les éléments dans une liste, par exemple pour le traiter avec une boucle for, ce qu'on va voir, eh bien, il y a une syntaxe particulière dans l'index, dans la notation de l'index : je vais utiliser * ou éventuellement @. Ça va être à peu près la même chose. Vous vous souvenez peut-être de $* ou $@ qui nous permettaient de récupérer tous les arguments passés. Eh bien, c'est le même raisonnement : * ça veut dire : donne-moi tous les éléments. Et donc ici, si je fais cet echo, alors qu'est-ce que j'ai fait ? Ah oui, j'ai encore oublié de mettre mes accolades. C'est malin. Et cabernet, pinot, malbec, tout va bien. Donc je peux comme ça, référencer tous les éléments. Et c'est comme ça que je vais faire une boucle for d'ailleurs. Mais on va le voir. Alors une autre chose par rapport aux variables. Vous pouvez utiliser des commandes internes, des mots clés internes du bash pour déclarer une variable. Si vous voulez déclarer une variable, vous pouvez faire declare, je dirais par exemple var. Et ensuite vous pouvez en faire un var=2. Voilà, vous pouvez tout à fait faire comme ça. Ce n'est pas forcément nécessaire dans le bash, on va être plus informel. Mais si vous voulez vraiment être formel comme ça, vous pouvez faire un declare. Et si vous voulez déclarer une liste, eh bien, vous ajoutez une option à declare pour dire -a, -a pour dire array bien sûr. Et donc vous pouvez ensuite dire var[0], comme ça, aura telle valeur. Mais en fait, vous n'avez même pas besoin de faire ça. Ça, je vais le commenter parce que dès que vous faites comme ceci, de toute façon le bash va comprendre que vous êtes en train de déclarer une variable et que puisque vous avez mis un index, ça va être une liste. Donc il va très bien s'en sortir comme ç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 !