Greboca  

DLFP - Dépêches  -  Bash 5 : une introduction

 -  5 août - 

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.

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, dans l’Aveyron, est un site délocalisé de l’Université Toulouse 1 Capitole. 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.

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.

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)

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)

$ 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.) est rompu à la fin (en 14.10.) 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 (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 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.

Commentaires : voir le flux Atom ouvrir dans le navigateur

par Ysabeau, Gil Cot, Anonyme, Benoît Sibaud, palm123

DLFP - Dépêches

LinuxFr.org

Haiku a (presque) 21 ans

 -  4 août - 

Le projet Haiku (au départ nommé OpenBeOS) a démarré officiellement le 18 août 2001 avec le premier message sur la liste de diffusion : Ok, let's (...)


Lettre d'information XMPP de juin 2022

 -  24 juillet - 

N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les (...)


PyPI déploie le système 2FA pour les projets critiques écrits en Python

 -  16 juillet - 

PyPI (de l’anglais « Python Package Index ») est le dépôt tiers officiel du langage de programmation Python. Son objectif est de doter la communauté (...)


PyPI déploie le système 2FA

 -  16 juillet - 

PyPI (de l’anglais « Python Package Index ») est le dépôt tiers officiel du langage de programmation Python. Son objectif est de doter la communauté (...)


Sortie de darktable 4.0.0 : une présentation 100 % subjective

 -  11 juillet - 

darktable 4.0.0 est sortie ce 2 juillet 2022. « D’accord, mais pourquoi devrais-je en avoir quelque chose à faire ; et puis c’est quoi, darktable, (...)