Découvrir l'écriture de scripts en Bash

Passer des paramètres

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez passer des paramètres à vos scripts et vous allez les récupérer à l'aide de variables spéciales.
05:04

Transcription

Qu’en est-il des paramètres maintenant ? On va appeler des scripts. Il faudrait quand même leur passer des paramètres. Comment est-ce que ces paramètres sont gérés dans le Bash ? Pour ce faire j’ai créé un deuxième script qui s’appelle params. Il n’y a rien dedans pour l’instant. Juste un shebang au début. Puis on va déjà voir comment récupérer les paramètres. Vous vous souvenez peut-être, on peut faire un echo $0. Le « $0 » c’est une variable spéciale qui indique le premier paramètre. Donc « $1 » ce sera le deuxième paramètre. Ou plutôt le premier paramètre. Parce que le premier paramètre « $0 » c’est le script lui-même. On va le voir tout de suite. Donc je vais pour le coup quitter. Donc je vais regarder si… oui params est en vert donc j’avais ajouté les droits d’exécution. Donc je vais appeler params, je vais mettre un paramètre ici, je vais dire « c » par exemple. Et qu’est-ce qu’il se passe ? Vous voyez le echo $0 me renvoie params et le echo$1 me renvoie « c ». Donc echo$0 c’est le nom du script, le nom de l’exécutable. Et ensuite « $1 » ce sera le premier paramètre. Il y a un truc assez particulier d’ailleurs par rapport à ça, c’est que si vous avez beaucoup de paramètres à envoyer, je vais faire par exemple le dixième paramètre, Et bien. Donc je vais faire un appel avec beaucoup de paramètres pour voir ce que ça donne. Je m’arrête là quand même. Vous voyez « $0 » c’est ceci. « $1 » c’est ceci. Et « $10 » c’est « c0 » Qu’est-ce que « $10 » m’a pris ? Il m’a pris « $1 » et il m’a rajouté un « 0 » ensuite. Il se trouve que si vous avez un paramètre qui dépasse le neuvième, il faut le gérer un peu différemment. Vous devez absolument dire ici, que vous voulez « 10 » et donc il faut l’exprimer en accolades comme ceci. Parce que finalement on n’a pas le droit de commencer un nom de variable par un nombre. Donc si je trouve « $1 » le Bash comprend que c’est un paramètre, mais ensuite « 1 0 », il est incapable d’aller plus loin. Donc on va lui dire explicitement que la totalité de la variable spéciale, c’est « $10 ». On réessaye pour voir ce que ça donne. On ne va pas voir beaucoup de différences dans cet appel. Ce qui fait qu’on va s’arrêter un peu là et on va mettre des « u » par exemple, pour bien voir qu’il y a une différence, parce que sinon « $10 » ce serait « c » aussi. « c$1 » on n’est pas sûr, donc j’ai bien « c » ici et « u » ensuite. Pas de soucis. Donc on peut récupérer comme ça de façon positionnelle nos paramètres. On a encore quelques variables spéciales dans le genre. On a un « $# » Si vous vous souvenez du « # » à l’intérieur des chaînes, c’était le nombre de caractères, donc vous vous doutez ici « $# » c’est le nombre de paramètres qui ont étés envoyés. On s'entend, le « #$ » c’est le nombre de paramètres sans compter « $0 » Donc c’est en fait la totalité des paramètres. Par exemple si j’en ai mis 20, c’est de 0 à 20. Donc on va retrouver 20. On a aussi un « $@ » qui nous retourne la liste des paramètres. C’est donc une sorte de type de liste. Et puis, assez peu utilisé quand même, mais à noter. Le « $* » qui nous retourne tous les paramètres mais dans une seule chaîne. C’est relativement peu utilisé. Je ne vais pas le faire. Je vais rester sur mon « $@ ». On va juste voir ce que ça donne avec mes différents appels. Donc ici « c » « u » « 16 ». Il faudrait que je les compte mais il doit y avoir 16 paramètres ici. Et puis voici la liste de tous les paramètres. Donc le « $@ » est utile si je vais commencer à boucler dans les paramètres. Ce que je peux faire également d’ailleurs, c’est que si je récupère « $1 ». Je peux faire un shift pour dire je vide ce « $1 ». Je vais vous montrer avec le compte ici. Donc « $# » et « $# », et entre les deux je vais entrelarder la commande shift donc c’est simplement shift. Je peux éventuellement mettre un nombre, pour dire tu en enlèves trois. Mais si je fais shift tout court, ça en enlève un. Et quand je parle d’enlever, ça veut dire ceci : Si je fais ces paramètres, par exemple ça c’est « $1 » Et si je fais un shift, ce « $1 » disparait. Et c’est « $2 » qui se déplace à gauche et qui devient « $1 » et donc il y a un déplacement de tout ceci vers la gauche en enlevant au fur et à mesure le premier paramètre. Et donc si je fais ceci vous voyez que mon premier « $# » me donne « 16 ». Je fais un shift j’enlève ceci. En fait il ne me reste donc plus que ceci et ce premier paramètre est devenu « $1 » et il ne m’en reste maintenant seulement « 15 »

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 !