web-dev-qa-db-fra.com

Sortie d'écho $$

La sortie de la commande echo $$ affiche un certain nombre dans la sortie standard, comme ci-dessous.

$ echo $$
14594

Quel est ce nombre? Et aussi,

$ x=a
$ echo $x
a

Dans l'exemple ci-dessus, echo $x analyse la variable x et affiche la valeur de x sur la sortie standard. De même, dans cette commande echo $$, le second symbole en dollars représente-t-il une variable?

3
Avinash Raj

$$ est le PID ( identificateur de processus ) du shell actuel (pas le sous-shell). Dans un script, dans un sous-shell, $$ renvoie le PID du script, pas le sous-shell. Voir Variables internes .

Vous pouvez également trouver le PID renvoyé par echo $$ in terminal dans le résultat de la commande suivante:

ps ax | grep bash
3
Radu Rădeanu

$$ est l'une des variables internes de bash. Contrairement à $x, dans votre exemple, il ne "contient" pas de valeur, la valeur est demandée chaque fois que vous accédez à la variable.

Dans un script bash, renvoie l'identifiant du processus du script lui-même. Dans un script, vous pouvez appeler kill $$ pour envoyer SIGTERM à votre script.

Dans un shell bash, renvoie l'identifiant du processus bash en cours.

Dans un script bash, à l'intérieur d'un sous-shell, , l'ID de processus du script est renvoyé, pas le sous-shell.

2
chaos