Circum Blog

Circum Net – IT – Conseils pratiques

Le Shell Script

Unix

Un ‘shell script’ est un fichier contenant une séquence de commandes destinées à être exécutées par le shell de la machine hôte (c’est-à-dire l’interpréteur de commandes standard de votre machine Unix/Linux).
Si les interfaces graphiques sont de plus en plus utilisées pour dialoguer avec des systèmes Unix/Linux, le travail en mode commandes est incontournable. En effet, celui-ci reste pour l’utilisateur de tels systèmes un outil puissant et d’une grande souplesse.

Dans ce cadre, le Shell peut, lorqu’il est utilisé dans le sens d’un langage de programmation, vous permettre d’automatiser de nombreuses tâches, d’optimiser l’administration du système et d’écrire de petits utilitaires souvent précieux en termes de gestion et de maintenance.

Les scripts shell sont parfois comparés aux fichiers ‘batch’ du système MS-DOS, même si ces derniers sont nettement moins puissants.

En pratique

Un simple éditeur de texte permet de créer, d’éditer et de sauvegarder les scripts. L’essentiel du travail consiste en effet à écrire les lignes de codes à l’aide d’un outil du style ‘vi’ ou ‘gedit’ et d’enregistrer le tout sur disque.

Exemple: ‘test.sh’

#! /bin/sh
echo “Ceci est un test”
# la commande qui suit va lister le contenu du répertoire
ls -la

La première ligne de ce script précise quel sera le type de shell utilisé pour l’interprétation des commandes (dans ce cas-ci ce sera ‘sh’).
La commande ‘echo’ envoi une chaîne de caractères sur la sortie standard et la commande ‘ls’ liste le contenu d’un répertoire.

Contenu d’un script
———————-
Un ‘shell script’ peut être vu comme une suite de commandes rassemblées dans un fichier texte. Chaque ligne de ce fichier équivaut à une commande qui aurait pu être lancée “interactivement” par un utilisateur.

Lors de son exécution, le script va être lu par un interpréteur; ce dernier va analyser et exécuter les commandes que contient le fichier. L’interpréteur sollicité sera un des shells Unix (sh, csh, ksh, bash et tcsh).

Enregistrement d’un script
——————————
Le nom d’un shell-script lors de la sauvegarde sur disque peut être quelconque mais le choix se porte généralement sur soit “mon_script” (sans extension), pour que son nom s’apparente à celui d’une commande Unix classique, soit “mon_script.sh” (ou “mon_script.csh” s’il était écrit en C-shell), pour indiquer clairement qu’il s’agit d’un shell script.

Exécution d’un script
————————
Un ‘shell script’ peut être exécuté de la même façon que l’on lance un programme.
Il y a pour cela deux possibilités:

– soit en exécutant la commande ‘bash’ (sh, csh ou tcsh en fonction du type de shell que vous voulez utiliser) avec pour argument le nom du fichier ‘shell script’:
bash test.sh

– soit en rendant le fichier ‘shell script’ exécutable (x) et en utilisant son nom comme commande:
chmod u+x test.sh
./test.sh