Suivant: Les variables et Chapitre: Configurer votre environnement Avant: Configurer votre environnement
Shell scripts Admettons que vous utilisiez souvent une série de commandes, et que vous vouliez les grouper toutes sous un même nom pour ne pas perdre de temps à les taper une par une à chaque fois. Par exemple, les commandes
concaténerait les trois fichiers dans bouquin, puis afficherait le nombre total de lignes contenues, et enfin imprimerait le fichier à l'aide de la commande lpr. Au lieu de taper toutes ces commandes, vous pourriez les grouper dans un shell script. Nous avons abordé rapidement ces fichiers de commandes dans la section 3.13.1. Ce script ressemblerait donc à
Ce script étant sauvé dans le fichier makebook (par exemple), il suffit de taper la commande
pour qu'aussitôt les commandes qu'il contient soit exécutées. Les shell-scripts sont de purs fichiers texte; vous pouvez les réaliser avec un éditeur comme emacs ou vi .
Regardons cet exemple de shell-script. La première ligne, `` #!/bin/sh'', indique que le fichier est un script, et indique au shell de quelle façon l'exécuter. Dans ce cas, il devra le passer à /bin/sh, qui est le shell lui-même dans ce cas. Pourquoi est-ce important ? Sur beaucoup de systèmes UNIX, /bin/sh est un shell Bourne, comme Bash. En forçant le shell à utiliser /bin/sh, on s'assure que le script sera bien exécuté par le bon shell, quelque soit celui qui est utilisé par défaut. Même si vous êtes sous Tcsh, ce script fonctionnera correctement.
La deuxième ligne est un commentaire. Les commentaires commencent par le caractère `` #'' et s'étendent jusqu'à la fin de la ligne. Ils sont ignorés par le shell, ils permettent de mettre des explications ou des notes pour que le programmeur s'y retrouve.
Les autres lignes sont juste des commandes, exactement comme vous les taperiez au clavier directement. Le shell lit chaque ligne du script et l'exécute comme si vous veniez de la taper.
Les permissions d'accès des shell-scripts sont importantes: lorsque vous créez un tel fichier, vous devez vous assurer d'avoir la permission d'exécution pour pouvoir le lancer . La commande
peut être utilisée à cet effet.