Bien entendu, le shell, s'il est probablement le précurseur, n'est pas le seul moyen d'ecrire des scripts permettant d'automatiser des taches d'administration système. De nombreux autres langages permettent, avec plus ou moins de bonheur et de facilité, d'y procéder.
Le langage TCL Tool Command Language a été écrit par John Ousterhout et son équipe à l'université de Berkeley à partir 1988. Il est conçu pour être facile à apprendre (il repose uniquement sur douze règles syntaxiques), extensible et facilement interfaçable avec le langage C (embarquable). Ces qualités ainsi que sa maturité en ont fait un langage très utilisé en administration système, et notamment avec l'utilisation de son extension TK qui permet de générer des interfaces graphiques.
Un exemple de code :
set message "Bonjour, Monde" puts $message
Le langage PERL Practical Extraction and Report Language, à été l'origine développé Larry Wall, et est né si l'on en croit wikipédia : << du besoin de disposer d'un langage optimisé pour l'extraction d'informations de fichiers textes et la génération de rapports. Avant la naissance de Perl, les traitements sur le texte devaient être faits au moyen de scripts shell, en utilisant les programmes sed, awk, grep, cut, test et expr. Beaucoup de limites apparaissaient quand on utilisait cette programmation : format des données d'entrée pas toujours souple, difficulté de passer des données d'un processus à l'autre, lenteur due au lancement de multiples programmes (le coût du lancement d'un processus n'était pas négligeable), dépendance à une mise en oeuvre particulière d'une commande, bogues intrinsèques à certains langages (awk ne différencie pas la comparaison de nombres et de chaînes de caractères). Perl regroupe et emprunte sa syntaxe concrète à tous ces mini langages, dont le shell, en ajoutant une partie de la syntaxe du C et les fonctions des bibliothèques système en C. >> De fait, perl a connu un très grand succès, notamment auprès des administrateurs système qui l'ont grandement utilisé pour écrire nombre d'utilitaires (à l'origine de DEBIAN, les outils d'installation étaient écrits en perl).
L'une de ses grandes forces réside dans l'utilisation massive des expressions rationnelles mais il est desservi par une syntaxe absconse, due en grande partie à sa grande richesse, et qui le rend rapidement illisible pour un non-spécialiste.
Pour preuve l'une des devises favorites de ses utilisateurs est << There Is More Than One Way To Do It (TIMTOWTDI) >>, ce qui pourrait se traduire par Il y a plus d'une façon de le faire !
Malgré ce, un très grand nombre de bibliothèques sont disponibles pour PERL via des dépôts de code spécialisés : les CPAN.
Un exemple de code :
$message = "Bonjour, Monde.\n"; print $message; $message =~ s/Monde/Université de Perpignan Via Domitia/; print $message; exit 0
PYTHON a été développé par Guido van Rossum en 1989 avec pour but avoué d'obtenir un langage lisible, qui vise à être visuellement épuré, et utilise des mots anglais fréquemment là où d'autres langages utilisent de la ponctuation et sa structuration s'obtient par l'indentation du code source, et il est résolument orienté objet.
Il est actuellement très utilisé pour du prototypage et des scripts, d'autant qu'il dispose d'une très importante bibliothèque de modules se rapportant à d'innombrables domaines, comprenant notamment des wrappers pour la quasi-totalité des librairies les plus en vogue (qt, gtk, etc...).
Un exemple de code :
print "Bonjour, Monde !" print "Bonjour, Monde !".replace("Monde", "Université de Perpignan Via Domitia")
RUBY a été à l'origine conçu par Yukihiro "Matz" Matsumoto qui, ne trouvant pas dans les langages de programmation déjà existants (dont Perl et Python) de quoi le satisfaire, en commença l'écriture en 1993 et publia une première version en 1995. Ce nouveau langage est entièrement basé sur le paradygme objet : tout y est objet, y compris les types dits "de base" dans les autres langages.
Un exemple de code :
puts "Bonjour, Monde !" puts "Bonjour, Monde !".upcase
On n'aura cité ici que les langages de scripts les plus connus ou utilisés, mais il en existe une multitude d'autres, chacun plus ou moins spécialisés dans un domaine particulier, tels que LUA (forte ressemblance au C, facilement embarquable), PHP (développé originellement pour le développement web, mais l'interpréteur en ligne de commande permet d'écrire des scripts à vocation "système" utilisant l'immense bibliothèque de modules existante), etc...
En guise de conclusion, il reste évident qu'au vu de la multitude des possibilités offertes par le monde open source, il est possible de trouver un langage qui corresponde à chaque besoin particulier ou aux capacités du programmeur !
Bons scripts !!!