web-dev-qa-db-fra.com

Qu'est-ce que $? 0 $ $ 1 $ 2 signifie en script shell?

Je rencontre souvent $? $0 $1 $2 etc.... dans les scripts Shell, ce que je sais, c'est que $? renvoie le statut de sortie de la dernière commande.

echo "this will return 0"
echo $?

mais que font les autres? comment s'appellent-ils et y a-t-il plus? peut-être comme 3 $ 4 $ 5 $ ...

67
Lin

Ce sont des arguments de position du script.

L'exécution

./script.sh Hello World

Fera

$0 = ./script.sh
$1 = Hello
$2 = World

Note

Si vous exécutez ./script.sh, $0 donnera la sortie ./script.sh mais si vous l'exécutez avec bash script.sh, il donnera la sortie script.sh.

143
Grzegorz Żur

Ils s'appellent Positional Parameters .

3.4.1 Paramètres de position

Un paramètre de position est un paramètre désigné par un ou plusieurs chiffres, autre que le simple chiffre 0. Les paramètres de position sont attribués à partir des arguments du shell lorsqu'il est appelé et peuvent être réaffectés à l'aide de la commande interne set. Le paramètre de position N peut être référencé par $ {N} ou par $ N lorsque N est constitué d'un seul chiffre. Les paramètres de position ne peuvent pas être attribués à des instructions d'affectation. Les commandes internes set et shift sont utilisées pour les définir et les désactiver (voir Commandes intégrées Shell). Les paramètres de position sont temporairement remplacés lorsqu'une fonction Shell est exécutée (voir Fonctions du shell).

Lorsqu'un paramètre de position composé de plusieurs chiffres est développé, il doit être placé entre accolades.

26
Etan Reisner