Découvrir l'écriture de scripts en Bash

Découvrir les opérateurs de test

Testez gratuitement nos 1270 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez maintenant apprendre à réaliser des tests sur des variables. Apprenez également à créer des fichiers.
07:11

Transcription

On va voir maintenant les opérateurs de comparaison. On a vu l’égalité, on va en voir d’autres. Donc je vais prendre ces deux lignes. Je vais les reprendre ici, et puis je vais les joindre. Et qu’est ce qui permet de mettre deux commandes différentes sur la même ligne en bash ? C’est le séparateur qui est le point-virgule. Donc je peux mettre un point-virgule. Ce n’est pas forcément une excellente pratique dans un script. C’est plus pratique quand même dans une ligne quand vous tapez des lignes interactives, dans l’interpréteur de commande. Mais là, ça va nous simplifier l’affichage. Donc on a notre égalité. Alors, bon c’est la vie, = simple. C’est une égalité dans la norme POSIX. Donc une norme qui a défini commande et système sur une x devait se comporter. Mais vous pouvez également utiliser un double égal si vous avez l’habitude d’autres langages de programmation. Ça va fonctionner également. Cette égalité ici, je vais revenir là-dessus, c’est une égalité de chaîne de caractère. Vous avez d’autres comparateurs pour les entiers, pour les nombres. Mais restons une seconde sur ceci. Evidemment, si vous voulez faire plus grand ou plus petit, vous avez ce type de syntaxe. Ça, c’est assez classique. La différence s’exprime par !=. Ça aussi, c’est assez classique. Donc vous avez toute latitude de faire ce que vous voulez. A l’intérieur, vous avez vu que la variable a été remplacée. Donc on a des substitutions qui sont générées par le bash, il n’y a pas de souci. Si vous voulez comparer des valeurs numériques, par exemple est-ce que 5 est différent de 2 ?, comme ceci, n’utilisez pas ces opérateurs. Ce sont des opérateurs de chaînes. Mais utilisez des opérateurs de nombres. Alors vous avez bien entendu une aide en ligne. Je vous la montre tout de suite. Vous pouvez par exemple vous référer ici, à ce site : abs.traduct.org. C’est une traduction de la documentation du bash, où vous avez les comparateurs d’entiers, avec -eq pour est égal à, ne : non equal, gt : greater than, ge : greater ou égal, etc. Donc ça aussi, c’est des choses qui sont aussi existantes dans différents langages. Alors ce qui se passe en fait, c’est que le bash, c’est quand même un interpréteur de commande un peu fourre-tout, où au fil du temps, il y a des choses qui se sont accumulées. Vous avez un choix assez large de manières de faire. Ça n’aide pas à simplifier la programmation en bash, parce que c’est quand même rempli de petites subtilités. Alors, on n’a pas encore fini de voir les comparaisons, mais il y a aussi une autre syntaxe. On a vu comparaison avec crochet ouvrant, crochet fermant. Il y a une deuxième syntaxe avec double crochet, dont je vais vous parler dans très peu de temps, qui se comporte différemment selon certains cadres. Ça n’aide pas à toujours prédire ce qui va se passer. Il faut avoir une bonne connaissance finalement du bash, au bout d’un moment, pour pouvoir faire quelque chose de bien sentie. Donc voilà toute une suite d’opérateurs, les opérateurs de comparaison de chaîne. Donc on a égal, double égal. On voit que l’opérateur devcomparaison en double égal se comporte différemment à l’intérieur d’un test à double crochet. C’est ce que je vous disais. Donc vous voyez, double crochet, c’est possible aussi. Crochet, c’est possible, et ça se comporte différemment. Vous voyez un petit peu le problème. On va reparler des doubles crochets quand on aura vu les opérateurs booléens. Donc voilà, vous pouvez vous en référer à cette page de documentation. Il y a un autre type d’opérateur très utilisé dans le bash, parce qu’on va souvent faire des scripts pour manipuler des fichiers. C’est les opérateurs de test de fichier. Là je viens sur la page précédente. Et on a simplement des tirés avec une lettre, qui vont pouvoir être utilisés soit dans la syntaxe test, soit dans la syntaxe avec les crochets, comme ceci, pour indiquer si un fichier est alors présent, vide, non vide, s’il est exécutable, si c’est un répertoire. Donc c’est tous ces opérateurs spécifiques qui vont permettre de faire des tests. Ce sera toujours un exit status : 0 : oui ; 1 : non ou faux si vous préférez. Donc voyez l’exemple. On va mettre dans une variable, un fichier. Ensuite, on teste ici avec -b, et la variable donc qui va être remplacée par le contenu ici, et puis on saura si c’est vrai ou si c’est faux. On va faire un petit test comme ça avec ça. Donc je reviens ici, et ici je vais utiliser mon test plutôt, de fichier. Donc par exemple : est-ce que ce fichier existe ? Ça veut dire : est-ce qu’il existe ? Est-ce que c’est un fichier normal ? C'est-à-dire : ce n’est pas un répertoire, ce n’est pas un fichier de périphérique, c’est un fichier normal qui contient quelque chose. Et on va tester par exemple etc/host. Est-ce que ce fichier existe ? Donc mon écho ici, le dernier écho que je vais voir, ça va être 0 s’il existe, et 1 s’il n’est pas trouvé ou si ce n’est pas un fichier normal. Donc 0, c’est trouvé. OK, on va quand même voir que ça ne marche pas. Donc hostsu, j’invente, et donc 1, on n’a pas trouvé f. On a plein donc d’opérateurs particuliers de comparaison comme ça, qui sont très pratiques. Vous pouvez les utiliser avec la syntaxe test aussi si vous préférez. Mais il est quand même plus traditionnel de les utiliser comme ça. Nous avons f, c’est un fichier normal, et il existe bien sûr. Nous avons e, c’est un fichier qui existe, quel que soit le fichier. Ça peut être un fichier de périphérique. Nous avons s, le fichier existe, et sa taille est supérieure à 0. Donc ce n’est pas un fichier vide. Nous avons d, ça veut dire que c’est un répertoire, d pour directory. Nous avons h, et ça veut dire que c’est un fichier qui est un lien symbolique. Et puis on peut tester les permissions également. Par exemple, est-ce que host est un fichier que je peux écrire ? Donc w, pour write, et on va tester. Est-ce que l’utilisateur qui est en train d’exécuter le script a l’autorisation d’écrire dans etc/host ? 1, la réponse est non. Est-ce que etc/host est un fichier exécutable pour l’utilisateur ? Il n’y a même pas besoin de lancer la commande, ce n’est pas un script. Donc de toute façon il n’est pas exécutable. Mais vous voyez que vous pouvez faire ce type de test. Donc référez-vous à la documentation. Il y a pleins de choses qu’on peut faire.

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 !