Arguments des scripts shell

Variables en entrée

Il est possible de passer des données (variables) lors de l'appel d'un script : ce sont les arguments.

script argument_1 argument_2 argument_3

Les arguments sont sur la même ligne que le nom du script et sont séparés par un espace

Les 9 premiers arguments sont accessibles directement par l'opérateur $ : $1 correspond au premier argument

D'autres variables à l'aide de l'opérateur $ existe :

$# : nombre d'arguments lors de l'appel du script

$* ou $@ : donne la liste complète des arguments

$0 : donne le nom du script

la commande shift

La commande shift permet de décaler à gauche les arguments : $1 disparait, $2 devient $1, $3 devient $2, etc...

Cela permet en combinant shfit et une boucle while de pouvoir récupérer et traiter les arguments

while [ $# -ne 0 ]; do echo $1 shift done 

la commande getopts

La commande "getopts" combinée avec une boucle while permet de récupérer tous les paramètres très facilement

while getopts t:r: MYOPTION do
case MYOPTION in
 t) RESTAURANTTYPE=$OPTARG
 ;;
 r) RATING=$OPTARG
 ;;
 \?) echo "Sorry no such option, please try again"
 exit 1
 ;;
done 
Modifié le: lundi 15 juillet 2013, 23:30