Les scripts bash
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.
- $# : nombre de paramètres
- $* : affiche l'ensemble des paramètres
- $@ : affiche l'ensemble des paramètres comme $*. La différence est que $* correspond à une seule valeur, alors que $@ correspond à autant de valeurs qu'il y a de paramètres
- $0 : affiche le nom du script
- $1, $2, ..., $9, ${10}, ... : correspondent aux paramètres n°1, 2, etc. Pour les paramètres à plusieurs chiffres, il faut mettre les chiffres entre crochets.
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 |