28.02.2013 Views

Guide Bash du débutant - Index général des HOWTOs et mini ...

Guide Bash du débutant - Index général des HOWTOs et mini ...

Guide Bash du débutant - Index général des HOWTOs et mini ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Le Shell considère certains paramètres spécifiquement. Ces paramètres ne peuvent qu'être<br />

référencés ; leur affectation n'est pas permise.<br />

Tableau 3.3. Les variables <strong>Bash</strong> spéciales<br />

Nom Définition<br />

$* Est remplacé par tous les paramètres<br />

positionnels, sauf le premier $0. Quand<br />

l'expansion se pro<strong>du</strong>it entre guillem<strong>et</strong>s, cela<br />

revient à avoir un seul mot avec la valeur de<br />

chaque paramètre séparée par le premier<br />

caractère de la variable spéciale IFS.<br />

$@ Est remplacé par tous les paramètres<br />

positionnels, sauf le premier $0. Quand<br />

l'expansion se pro<strong>du</strong>it entre guillem<strong>et</strong>s, chaque<br />

paramètre est un mot à part entière.<br />

$# Renvoie le nombre de paramètres positionnels<br />

en décimal.<br />

$? Renvoie le statut d'exécution de l'instruction la<br />

plus récemment exécutée en avant-plan dans un<br />

tube.<br />

$- Renvoie les options déclarées lors de<br />

l'invocation de l'intégrée s<strong>et</strong>, ou celles<br />

positionnées par le Shell lui-même (tel que -i).<br />

$$ Renvoie l'identifiant <strong>du</strong> process <strong>du</strong> Shell.<br />

$! Renvoie l'identifiant <strong>du</strong> process de la<br />

commande la plus récemment exécutée en tâche<br />

de fond (asynchrone).<br />

$0 Renvoie le nom <strong>du</strong> Shell ou <strong>du</strong> script Shell actif.<br />

$_ Au démarrage <strong>du</strong> Shell, contient le nom<br />

compl<strong>et</strong> <strong>du</strong> fichier exécutable actif - script ou<br />

Shell - tel que passé dans la liste d'arguments.<br />

Ensuite, renvoie le dernier argument de la<br />

commande précédente après expansion. Et aussi<br />

valorisé avant chaque exécution de commande<br />

avec la valeur <strong>du</strong> chemin compl<strong>et</strong> de c<strong>et</strong>te<br />

commande, puis exporté dans l'environnement<br />

d'exécution. A la vérification de présence de<br />

mails, ce paramètre contient le nom <strong>du</strong> fichier<br />

de mails.<br />

$* versus $@<br />

L'implémentation de « $* » a toujours été un problème <strong>et</strong> aurait dû<br />

être remplacé pratiquement par le comportement de « $@ ». Dans<br />

presque tous les cas quand le programmeur utilise « $* », il veut dire<br />

« $@ ». « $* » peut être la cause de bugs <strong>et</strong> même de trou de sécurité<br />

dans votre programme.<br />

Les paramètres positionnels sont les mots qui suivent le nom d'un script Shell. Ils définissent les<br />

variables $1, $2, $3 <strong>et</strong>c. Autant que nécessaire, ces variables sont ajoutées dans un tableau interne. $#<br />

mémorise le nombre de paramètres, comme démontré dans ce simple script :<br />

#!/bin/bash

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!