Écrire un script

Objectifs

  • Savoir ce qu'est un script

  • Savoir ce qu'est un shell

  • Savoir écrire un script simple

Mise en situation

Il est fréquent que l'on fasse plusieurs fois les mêmes opérations sur son ordinateur. Par exemple renommer et classer dans un dossier toutes les photos produites lors d'une sortie photographie, ou effectuer des copies régulière, de sauvegarde, d'un fichier important. Écrire toutes les commandes à chaque fois est un peu ennuyeux, et surtout source de potentielles erreurs. Pour cela, on préfère utiliser des scripts.

DéfinitionScript

Un script est un fichier qui va contenir différentes instructions à exécuter dans la console, les unes à la suite des autres. De la même manière que le script d'un film décrit l’enchaînement des scènes et des répliques, un script informatique décrit les commandes successives à exécuter.

MéthodeCréer un script

Pour créer un script, il suffit d'écrire les commandes que l'on souhaite dans un fichier. Par exemple dans un fichier premierscript.sh on peut écrire une première instruction à exécuter.

1
echo "Hello World"

Pour que notre script soit utilisable, il est nécessaire de donner les droits d'exécution sur le fichier.

1
$ chmod +x premierscript.sh

Ensuite on peut lancer le script dans la console, comme si c'était une commande, en indiquant le chemin de celui-ci.

1
kyane@europa:~$ ./premierscript.sh
2
Hello World

Conseil

Lorsque l'on écrit des scripts sous Linux, la convention veut que l'on utilise l'extension .sh (ou bien aucune extension) pour bien identifier que c'est un fichier visant à être exécuté. Ce n'est qu'une convention, et non une contrainte technique.

Shell

En réalité lorsque l'on utilise notre ligne de commande, on utilise ce que l'on appelle un shell. Le shell est une sorte de langage de programmation : celui qui interprète les commandes qui sont entrées dans la console et qui se charge ensuite de lancer les différents programme que l'on appelle. Par défaut sous Ubuntu le shell est Bash (pour Bourne-Again shell), et c'est sans doute l'un des plus connus (il en existe d'autres, comme sh ou zsh).

Le shebang

Comme pour les instructions entrées dans la console, le script doit-être interprété par un shell. C'est le shell par défaut qui est utilisé (Bash sous Ubuntu), mais on pourrait vouloir le faire exécuter par un autre shell, ou même par un langage de programmation complètement différent (comme Python ou Perl).

Il existe donc une convention qui est d'indiquer en tout début de fichier de script le shell ou langage que l'on souhaite utiliser pour exécuter le script. C'est ce que l'on appelle un shebang et il a la forme suivante :

1
#!/bin/bash

Un shebang commence systématiquement par #! suivi du chemin vers le shell que l'on souhaite utiliser (pour Bash il s'agit de /bin/bash). Il doit toujours être placé sur la première ligne du script.

La plupart du temps cette ligne sera toujours #!/bin/bash (en tout cas pour les scripts de ce cours) et n'est pas obligatoire, mais il est important de savoir ce que cela signifie.

À retenir

Si l'on écrit des commandes dans un fichier texte et que l'on ajoute des permissions d’exécution dessus, on obtient un script. Un script est pratique pour lancer une suite d'opérations identiques plusieurs fois, sans avoir à écrire les commandes à chaque fois. Le script peut contenir toutes les commandes et opérateurs que l'on écrit habituellement dans la console, car il est exécuté par le même programme (que l'on nomme le shell)