Newer
Older
cours-unix-shell / src / shell / parametres.md

Paramètres - Shell - UNIX

Récupération des paramètres de la ligne de commande

$0 nom de la commande
$n valeur du nième paramètre
$# nombre de paramètres
$* liste de tous les paramètres

Pour la ligne de commande sh test.sh a b c, $0 vaut test.sh, $# vaut 3, $* vaut a b c, et $2 vaut b (à l'intérieur du script).

La commande shift décale les paramètres (en perdant le premier) : le deuxième paramètre devient le premier, le troisième devient le deuxième, etc. (c'est utile quand on utilise une boucle pour traiter les paramètres).

Variables spéciales

$$ numéro de processus de la dernière commande
$? statut de la dernière commande (0 = tout s'est bien passé)

Caractères spéciaux

Comme à chaque fois qu'on a un caractère spécial (par exemple $), on a des caractères d'échappement.

\ banalise le caractère suivant echo \$0 $0 $0 /usr/bin/ksh
"..." banalise les caractères sauf \, $ et ` echo "\$0 $0" $0 /usr/bin/ksh
'...' banalise tous les caractères echo '\$0 $0' \$0 $0
`...` substitution de commande echo `date` Mon May 5 16:54:14 MEST 2003

💡 En 2023, il est conseillé d'utiliser $(commande) pour la substitution de commande.
L'exemple devient ainsi echo $(date).