URL: https://linuxfr.org/news/bash-5-une-introduction Title: Bash 5 : une introduction Authors: Collectif Gil Cot, Ysabeau, Anonyme, Benoît Sibaud et palm123 Date: 2022-06-08T14:43:56+02:00 License: CC By-SA Tags: bash, ligne_de_commande, shell et script_shell Score: 3 La troisième version du document « Introduction à la programmation en Bash » (IUT de Rodez) vient de paraître. Elle est principalement destinée aux étudiants de niveau Licence. ---- [Introduction à la programmation en Bash (page d'Eric Sanchis)](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/) ---- Contexte ======== Il s’agit de la troisième révision du cours donné par Eric Sanchis à l’IUT de Rodez. Cursus ------ L’[IUT de Rodez](http://www.iut-rodez.fr/), dans l’Aveyron, est un site délocalisé de [l’Université Toulouse 1 Capitole](http://www.univ-tlse1.fr/). Il délivre un Bachelor Universitaire de Technologie (BUT) au bout de deux années d’études, soit quatre semestres validés. Il est possible ensuite, toujours à l’IUT de Rodez, de prolonger les études d’une année pour atteindre le niveau Licence dans le cursus LMD (Licence-Master-Doctorat). « Introduction à la programmation en Bash » est le support de cours du [BUT Informatique](https://www.ut-capitole.fr/accueil/formations/nos-diplomes/but/but-informatique). Auteur ------ Eric Sanchis est Associate Professor à l’université de Laval au Québec depuis 2012. Il est aussi Maître de conférences en informatique à l’IUT Rodez où il enseigne depuis 1992, et y est membre permanent de [l’équipe de recherche ARAL](http://aral.iut-rodez.fr/). Ce cours, dispensé depuis 2007, en est à sa troisième édition. Contenu ======= Bien, que contient cette ressource ? Qu’y trouve-t-on pas ou pas ? Essentiel --------- Il est mentionné au point 1.1.3. > Toutefois, afin de rendre l’étude de bash plus aisée, nous n’aborderons pas sa syntaxe de manière exhaustive ; en particulier, lorsqu’il existera plusieurs syntaxes pour mettre en œuvre la même fonctionnalité, seule la syntaxe la plus lisible sera présentée, parfois au détriment de la portabilité vers les autres shells ou de la compatibilité POSIX. Ainsi, on trouvera la forme `foo $(bar baz) fuu` et non ``foo `bar baz` fuu`` De même, il est directement question en 10.2.2 de `[[` sans jamais évoquer le plus portable `[` mais plus limité. Ce choix assumé devrait permettre d’apprendre rapidement bash quand on vient d’autres langages de scripting. Progressif ---------- La table des matières montre un avancement progressif, et assez didactique. Les chapitres 2 et 3 traitent de l’expansion de la ligne de commande. Le chapitre 4 embrasse toute la problématique des méta-caractères et des expressions génériques. Le chapitre suivant discute des redirections et tubes qui font l’autre force des shell unixiens. Ensuite, on enchaîne sur les groupements de commandes et tout ce qui est relatif aux codes de retour. Les chapitres 9, 11 et 12, traitent respectivement : des chaînes de caractères, des expressions arithmétiques, et des tableaux. Les structures de contrôle du langage de programmation sont abordées aux chapitres 8 (pour `case` et `while`) et 10 (pour `for` et `if`) Les deux derniers chapitres évoquent les alias et les fonctions. Illustré -------- Les différents concepts évoqués sont accompagnés d’exemples que l’on peut reproduire. Pour ne rien gâcher, il y a quelques exercices intéressants. Critiques ========= Comme ce n’est pas une dépêche purement publicitaire, vous aurez bien entendu droit aux avis de l’équipe de rédaction. D’abord, bash 5… Les exemples ont été en effet testés avec la version 5.1, mais il n’y à rien qui soit spécifique aux versions 4.x ou 5.x ! Pour les gourous du bash qui espéraient trouver quelque plus, il faudra passer son chemin. Comme déjà dit, ce tutoriel va à l’essentiel en privilégiant les formes les plus lisibles. C’est une bonne chose de ne pas évoquer, quand c’est possible, les ésotérismes du shell… Par contre, la présentation des exemples peut dérouter quand il y a des commentaires. On trouve par exemple (en [11.7](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/ch11s07-Structure-for-pour-les-expressions-arithmetiques.html)) ``` declare -i x # affiche les dix chiffres for (( x=0 ; x<10 ; x++ )) do echo $x done ``` et aussi des trucs comme (en [2.1.1](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/ch02-Substitution-de-parametres.html#idm601)) ``` $ x=coucou y=bonjour => la variable x contient la chaîne de caractères coucou $ => la variable y contient la chaîne bonjour ``` Le contrat initial de favoriser une seule forme (en [1.1.3.](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/ch01-Introduction-a-Bash.html#idm167)) est rompu à la fin (en [14.10.](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/ch14s10-Appels-de-fonctions-dispersees-dans-plusieurs-fichiers.html)) avec l’évocation de `source` et `.` Le contenu est disponible en deux versions : une web (cf. lien) découpée en plusieurs pages avec liens de navigation (précédant/sommaire/suivant), et un PDF téléchargeable. La version PDF utilise une étrange coloration syntaxique sans fond tandis que la version web n’utilise qu’un fond uni et du texte en noir, uni pour les exemples avec des variations de graisse et inclinaison dans le texte d’explication. Enfin, seule la version PDF comporte des exercices, ainsi que des références complémentaires Malgré tout cela, c’est une bonne ressource complète en français qui est plus simple que le mythique [ABS](http://abs.traduc.org) (listé parmi les références de l’auteur.) **NdM :** cette dépêche a été soumise par l’auteur du cours, mais sous une forme tellement succincte qu’elle ne pouvait pas passer sous les fourches caudines de la modération qui a, cependant, trouvé le sujet intéressant. [Gil Cot](https://linuxfr.org/users/gilcot) l’a quasiment entièrement récrite en l’enrichissant considérablement, notamment avec « le point de vue de la rédaction ». Il a mérité au passage les plus chaleureux remerciements de la modération.