connectiva penguin bsd logo

Les scripts bash

1_Notre premier script

2_Les variables

3_Les commandes composées    (; | & || && $() {} ``)

4_Ecriture à l'écran / lecture au clavier    (echo read)

5_Le passage de paramètres

6_Les structures conditionnelles    (if then else while until)

7_Les autres structures    (for in do case select)

8_Les fonctions

9_Pour aller plus loin


5_Le passage de paramètres

Lorsqu'on lance un script, plutôt que de demander les paramètres après avec la commande read, on peut aussi les rentrer dès le lancement du script. On appelle ça le passage de paramètres. La syntaxe est la suivante :

./script param1 param2 param3

On a alors plein de variables qui nous permettent de récupérer chaque paramètre, ainsi que leur nombre.

Aller, on va se faire un petit exemple pour voir si vous avez bien compris :

#!/bin/bash
echo "nom du script=$0"
echo "nombre de parametres : $#"
echo '$*'=$*
echo '$@'=$@
echo "param1=$1"
echo "param2=$2"
echo "param3=$3"
echo "param4=$4"

Ce qui nous donne à l'écran :

$ ./test.sh a b c 123
nom du script=./test.sh
nombre de parametres : 4
$*=a b c 123
$@=a b c 123
param1=a
param2=b
param3=c
param4=123
la commande shift

La commande 'shift n' supprime les 'n' premiers paramètres de la liste, et décale la valeur des paramètres. Ainsi, la commande 'shift 3' supprime les trois premiers paramètres. Donc param4 devient param1, param5 devient param2, etc. De plus, la variable $# est diminuée de 'n'.

Rien ne vaut un exemple pour y voir plus clair :

#!/bin/bash
echo "nombre de parametres : $#"
echo "param1=$1"
echo "param2=$2"
echo "param3=$3"
echo "param4=$4"
echo "param5=$5"
shift 3
echo "apres 'shift 3' il nous reste $# parametres"
echo "param1=$1"
echo "param2=$2"
echo "param3=$3"
echo "param4=$4"
echo "param5=$5"

Ce qui nous donne, à l'exécution :

$ ./test.sh a b c d e
nombre de parametres : 5
param1=a
param2=b
param3=c
param4=d
param5=e
apres 'shift 3' il nous reste 2 parametres
param1=d
param2=e
param3=
param4=
param5=
<< page précédente
4_Ecriture à l'écran / lecture au clavier
page suivante >>
6_Les structures conditionnelles

Valid XHTML 1.1

logo firefox logo ubuntu logo debian logo mandriva logo gimp