Introduction à Linux

Dernière mise à jour : 26/05/2016

Les scripts

Introduction.

Comme nous l'avons vu, il existe énormément de commandes disponibles en Linux et chacune d'entre elles peut posséder un nombre impressionnant d'options. Cela permet certes d'obtenir des informations très précises, mais au prix d'un travail laborieux en introduction de commandes.

Linux permet de créer facilement des scripts. Vous mettez toutes vos commandes dans un script que vous pourrez exécuter de manière aisée autant de fois que vous le désirez.

Ces scripts peuvent être en commandes systèmes ou en tout autre langage interprété comme perl, awk, etc. Pour être exécutables, vous devez avoir sur eux le droit d'exécution. La première ligne du script doit également indiquer quel programme va servir à interpréter le script. Cette ligne aura la syntaxe suivante :

#!/path/interpréteur

Comme exemple, nous pouvons avoir :

#!/bin/sh       # script Bourn shell
#!/bin/bash     # script Bourn-again shell
#!/bin/csh      # script C-shell
#!/usr/bin/perl # script perl

Les variables de passage des paramètres des scripts C-shell

Il existe un tableau argv qui contient les paramètres passés au programme. Le premier élément du tableau porte l'indice 1 et contient le premier paramètre passé au programme. Il n'existe pas d'élément 0 à ce tableau et le nom du programme n'est pas non plus passé dans ce tableau.

Il existe des raccourcis au tableau argv : les variables $0 à $9. $0 contient le nom du programme et $1 à $9 les neufs premiers arguments. Pour accéder aux arguments suivants, il faut utiliser la commande shift.

Variable Signification
$argv[n] argument d'indice n passé au script
$0 le nom du script
$1..$9 les 9 premiers arguments passés au script
$# le nombre de paramètres passés au script
$* liste des paramètres passés au script
$@ liste des paramètres passés au script, chaque élément est entre guillemets.

Les instructions utilisables dans les scripts C-shell

Structure if

Syntaxe :

if(<expression>)
  <commandes>
else if(<expression>)
  <commandes>
else
  <commandes>
endif

Structure switch :

Syntaxe :

switch(<string>)
  case <pattern 1>:
    <commandes>
  case <pattern 2>:
    <commandes>
  default:
    <commandes>
endsw

Structure foreach :

Syntaxe :

foreach <variable> (<liste_de_valeurs>)
  <commandes>
end

L'instruction foreach va exécuter la boucle autant de fois qu'il y a de valeurs dans <liste_de_ valeurs> en donnant à <variable> chacune des valeurs de <liste_de_ valeurs>.

Structure repeat :

Syntaxe :

repeat <nombre> <commande>

<nombre> indique le nombre de fois que <commande> sera exécutée.

Structure while :

Syntaxe :

while <expression_vraie>
  <commandes>
end

Instruction break :

L'instruction break permet de sortir de la boucle en cours.

Instruction continue :

L'instruction continue permet de revenir au début de la boucle en cours.