Next: Développements.
Up: Scripts de shell avancés.
Previous: Liste de commandes.
Table des matières
Le contenu d'une variable ordinaire (appelons-la VARNAME)
peut être obtenu en faisant précéder le nom de la variable d'un signe
$, comme dans $VARNAME.
Les variables communément utilisées comme PATH
et les variables spéciales PWD et RANDOM
sont discutées au chapitre 10. D'autres
cas sont documentés dans le paragraphe qui suit (il s'agit d'extraits
de la page de man de bash).
[Brian Fox et Chet Ramey doivent être remerciés pour leur contribution. (annotation de P. Sheer)]
Paramètres spéciaux.
Le shell traite plusieurs variables
(ou paramètres) de manière spéciale. Ces paramètres peuvent seulement
être lus; il n'est pas possible de les modifier.
- $*
- s'applique
aux paramètres de position en commençant la numérotation à partir
d'1 (c'est-à-dire, aux arguments en ligne de commande passés au script
de shell, avec $1 comme
premier argument, $2 pour
le second, etc.). Quand l'extension ($*)
apparaît dans des guillemets doubles, elle se comporte comme un mot
unique bien que chaque paramètre soit séparé par le premier caractère
de la variable spéciale IFS
(InternalFieldSeparator).
[NdT: la variable IFS est souvent un espace]. Cela signifie que ``$*''
est équivalent à ``$1c$2c...'',
où c est
le premier caractère de la valeur de la variable IFS.
Si la variable IFS n'est
pas définie, les paramètres sont séparés par des espaces. Si IFS
est nulle, les paramètres sont joints
sans espacements.
- $@
- s'applique
aux paramètres de position, en commençant la numérotation à partir
de 1. Lorsque le développement se produit entre des guillemets doubles,
chaque paramètre se comporte comme un mot séparé. C'est-à-dire que``$@''
est équivalent à ``$1''
``$2''
... Lorsqu'il n'y a pas de paramètres
de position, ``$@''
et $@
ne s'applique à rien (donc, ils sont
éliminés). [Remarque: ceci est
utile pour écrire des scripts de shell d'interfaces qui ne font qu'ajouter
un argument].
- $#
- se
développe pour fournir le nombre de paramètres de position en mode
décimal .
- $?
- renvoie
le code de retour du tube
[NdT: il s'agit d'un tube associé à un enchaînement de tubes, appelé
en anglais pipeline] le plus récemment exécuté en avant-plan [c'est-à-dire au code de retour
de la dernière commande].
- $-
- se
développe en une liste des options courantes du shell telles que spécifiées
par la commande interne set
ou attribuées par le shell lui-même
(comme dans l'option -i).
- $$
- se
développe en le PID du shell courant. Dans un sous-shell [où les
commandes sont placées entre ()],
[NdT: ceci est une note pour donner un exemple de sous-shell
en relation avec l'usage de la commande tar
pour copier un répertoire intitulé origine
(en l'occurrence) d'un disque vers un autre. Il est entendu que le
chemin chemin_vers_repertoire_origine
est le chemin absolu donnant accès à ce répertoire]:
cd /repertoire_destination
(cd /chemin_vers_repertoire_origine; tar
cf - *) | tar xvf - cette variable s'applique au PID du
shell courant et non du sous-shell.
- $!
- se
développe en le PID de la commande en arrière-plan (ou commande asynchrone)
la plus récemment exécutée. [C'est-à-dire
qu'après avoir exécuté une commande en arrière-plan avec commande&,
la variable $! donnera
l'ID du processus].
- $0
- se
développe pour donner le nom du shell ou du script de shell. Ce paramètre
est fixé lors de l'initialisation du shell. Si bash
est invoqué avec un fichier de commande,$0 contiendra
le nom de ce fichier. Si bash
est démarré avec l'option -c,$0 contiendra
le premier argument (s'il y en a un) après la chaîne à exécuter. Autrement,
ce paramètre contiendra le chemin utilisé pour invoquer bash,
tel que donné par l'argument zéro.[Notez que basename
$0 est un moyen élégant d'obtenir
le nom de la commande courante, isolément].
- $_
- lors
de démarrage du shell, ce paramètre contient le chemin absolu du shell
ou du script de shell en cours d'exécution, tel que passé sur la ligne
de commande. Subséquemment, la variable est développée en le dernier
argument de la commande précédente. Elle correspond aussi au chemin
d'accès complet de chaque commande exécutée et, elle est placée dans
l'environnement exporté vers cette commande. Lors de la vérification
de l'arrivée de courriel, ce paramètre contient le nom du fichier
de courriel en cours de vérification.
Next: Développements.
Up: Scripts de shell avancés.
Previous: Liste de commandes.
Table des matières
1-01-2006