Découvrir l'écriture de scripts en Bash

Interpoler les variables dans les chaînes

Testez gratuitement nos 1300 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez voir comment réaliser une interpolation de variables à l'intérieur d'une chaîne de caractères.
05:15

Transcription

Nous avons vu comment exprimer une variable. On va revenir donc sur les chaînes de caractères, pour voir deux façons d’exprimer des chaînes de caractères, avec ou sans interpolation. C’est quelque chose de très classique dans les langages de programmation. Vous avez vu que j’ai exprimé ici une chaîne de caractères avec une apostrophe. Et que j’ai récupéré ici la valeur de ma variable, avec un « $ ». Mais si je voulais ajouter quelque chose à ma variable ? Faire une concaténation ? Par exemple, écrire message et ensuite coucou mon ami. Déjà est-ce que ça marche comme ça sans aucuns apostrophes ou guillemets, sans aucune protection de la chaîne ? On va essayer. Donc coucou mon ami pas de problème, ça c’est vraiment une particularité du Bash, de dire que tout ce qui suit l’echo, on l’affiche si vous le voulez. Est-ce que je peux mettre ça dans une chaîne de caractères ? Si je le fais de cette façon, que se passe-t-il ? Je vais avoir un $message mon ami Et plus un coucou mon ami comme ici. Donc ça c’était avant, ça c’est maintenant. Qu’est-ce qu’il s’est passé ? Évidemment le fait d’avoir mis $message dans une chaîne de caractères avec des apostrophes, une chaîne de caractères dans des apostrophes, c’est une chaîne de caractères qui va être représentée absolument littéralement. Alors je vais faire une copie de ça. Si on veut avoir une interpolation, que la variable soit interprétée à l’intérieur de la chaîne, je vais devoir changer ici mes apostrophes en guillemets doubles, vous voyez d’ailleurs que « vim » se débrouille très bien pour changer la coloration syntaxique et m’indiquer ce qui se passe. Et je vais avoir maintenant à la fois une interpolation, et puis ça va me permettre de faire de la concaténation très simplement. Ici avec l’echo du Bash. Donc j’ai de nouveau ici un coucou mon ami Alors si je reviens à mon code. Comment est-ce que je pourrais à ce moment-là indiquer un «$» dans tout ceci ? Parce que, je fais encore une autre ligne. Bonjour mon ami on pourrait dire : as-tu des $ Est-ce que ça marche ? Et bien on va voir. coucou mon ami as-tu des $ Oui ça marche parce que le Bash est suffisamment intelligent pour interpréter le « $ » à un moment donné. Quand il est tout seul, il va l’interpréter comme le signe « $ ». C’est une certaine forme d’intelligence. Si je mets quelque chose comme ça, « $0 » Bien sûr l’interpolation va se faire. Avec as-tu des rm Alors pourquoi des « rm » ? Parce que « $0 » c’est une variable spéciale dans le Bash qui indique l’exécutable. On va voir dans les paramètres qu’on peut reprendre avec « $0 », « $1 », « $2 » les positions de paramètres envoyés au script, mais « $0 » c’est toujours le script lui-même, le nom de l’exécutable. On va essayer autre chose. On va dire $coucou par exemple. On est d’accord que $coucou est une variable qui n’existe pas. Alors qu’est-ce qui se passe ? As-tu des variables qui n’existent pas, c’est vide, il n’y a pas d’erreurs particulières, donc on n’affiche rien du tout. Il n’y a pas vraiment de vérification de l’existence de la variable, il n’y a pas vraiment un langage ici qui soit très stricte par rapport à la prédéclaration des variables. Revenons en arrière, maintenant qu’en est-il du « $ » lui-même dans ce genre de cas ? C’est-à-dire qu’on a vu que si le « $ » était suivi de rien du tout il était montré. Par contre ici le « $ » est suivi de quelque chose, donc je pourrais faire ça et le « $ » s’affiche, mais si j’accole quelque chose après le « $ », plus rien. Si vous avez l’habitude des scripts, vous aurez peut-être deviné, on va devoir échapper le « $ ». C’est-à-dire mettre un signe avant le signe « $ », de façon à indiquer au Bash qu’on veut avoir le « $ » de façon littérale. Et très souvent dans les langages de programmation, l’échappement se fait avec un « \ ». Il n’y a pas d’exception ici, on va indiquer avec un « \ » qu’on veut vraiment exprimer le signe « $ » de façon littérale et as-tu des $coucou. On y est. Mais alors on pourrait se dire, qu’en est-il de la situation où je veux mettre coucou, je ne sais pas, par exemple je voudrais dire coucoucou n’importe quoi. Je vous l’accorde mais je veux le faire donc je vais le mettre ici. coucoucou Mais non pas coucoucou parce que le $message le Bash ne sait pas où s’arrêter. Il va lire $messagecou et il ne va pas savoir séparer la variable $message de la chaîne cou qui lui est directement accolée. Est-ce qu’on peut faire cette séparation, cette distinction ? Bien sûr. C’est aussi assez classique d’ailleurs. Après le « $ » on va ouvrir des accolades. On va à la fin de message, on ferme l’accolade. Et on a délimité la variable pour le Bash, de façon à bien lui faire comprendre où ça commence, où ça s’arrête. Un petit « make » et vous voyez coucoucou mon ami as-tu des $coucou Alors là ça ne veut plus rien dire, mais au moins ça marche.

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 !