Bachotage arithmétique avec bash, levons la bâche !
Le langage bash ne connaît que deux types de données : Les chaînes de caractères et les
entiers. Mais beaucoup de problèmes algorithmiques, et notamment d'arithmétique,
concernent les entiers. On peut donc utiliser bash pour tester des algorithmes sur des entiers.
Pour programmer en bash (Bourne-Again shell), on n'a rien à installer, puisque ce logiciel est la fondation des
systèmes d'exploitation basés sur UNIX, en particulier Linux. Ce langage de programmation n'est donc pas
totalement multi-plateforme puisque les windowsiens en sont privés [1], mais les heureux possesseurs d'un UNIX ont
déjà tout ce qu'il faut pour programmer en bash, il suffit pour cela qu'ils ouvrent une console et ça y est, ils
programment en bash [2] ! Ceci dit, pour des questions de confort (et de coloration syntaxique), le logiciel Geany a
été utilisé dans cet article.
D'où vient ce nom à bugger dehors ?
L'ancêtre de bash est le shell Unix de Stephen Bourne, ou Bourne shell (en abrégé sh comme shell, parce que c'est
un peu la coque qui entoure le système d'exploitation, du moins sa partie visible).
Lorsque le projet GNU a repris son shell à lui, il l'a baptisé Bourne Again Shell pour faire un jeu de mots sur Borne
again shell suggérant l'idée d'une renaissance. D'où le nom de bash.
Mais il existe d'autres logiciels reconnaissant les scripts ci-dessous, comme le Korn shell, Csh, Tcsh, Zsh ou le léger
Ash shell, ash signifiant cendre... C'est pour cela qu'il est nécessaire de préciser au début de chacun des scripts
ci-dessous le choix du shell qu'on a fait, en expliquant où est bash (ou autre) à la console. Ce qu'on fait en
commençant le script par une des lignes suivantes :
#! /bin/bash
#! /bin/sh
On remarquera que dans cet article, Guillaume Connan fait de même avec Python 3, en commençant un de ses
scripts par
#! python3
Ce n'est pas un hasard, puisque python3 est considéré comme une instruction de bash, comme le sont tous les
logiciels installés, en particulier Perl, Python, grep, cat, awk, cat etc.
Copyright © Les nouvelles technologies pour l'enseignement des mathématiques Page 2/16