diff --git a/b9f0369a-2823-4af4-819c-3a1fc0cf2b8c/draft_overlay.json b/b9f0369a-2823-4af4-819c-3a1fc0cf2b8c/draft_overlay.json new file mode 100644 index 0000000..c34119e --- /dev/null +++ b/b9f0369a-2823-4af4-819c-3a1fc0cf2b8c/draft_overlay.json @@ -0,0 +1,5 @@ +{ + "title": "Variable `$$` — récupérer le PID du shell", + "slug": "symbole-double-et-commercial-2", + "_updated_at": "2026-05-16 15:59:07" +} diff --git a/b9f0369a-2823-4af4-819c-3a1fc0cf2b8c/draft_overlay.md b/b9f0369a-2823-4af4-819c-3a1fc0cf2b8c/draft_overlay.md new file mode 100644 index 0000000..da13542 --- /dev/null +++ b/b9f0369a-2823-4af4-819c-3a1fc0cf2b8c/draft_overlay.md @@ -0,0 +1,22 @@ +# Variable `$$` — récupérer le PID du shell + +La variable spéciale `$$` renvoie le **PID** (*Process IDentifier*) du shell courant. Elle est utile pour générer des noms de fichiers temporaires uniques, tracer un script dans les logs ou créer un fichier de verrou. + +## Particularité dans les sous-shells + +`$$` conserve toujours la valeur du shell **parent**, même lorsqu'elle est évaluée dans un sous-shell `( … )`. Pour obtenir le PID réel du processus en cours d'exécution, Bash propose la variable `$BASHPID`. + +``` +~ $ echo $$ +17601 +~ $ ( echo $$; echo $BASHPID ) +17601 +17634 +``` + +Dans l'exemple ci-dessus : + +- `$$` affiche `17601` dans les deux cas : c'est le PID du shell interactif d'origine. +- `$BASHPID` affiche `17634` : c'est le PID du sous-shell créé par les parenthèses. + +Retenir la différence : **`$$` = PID du shell de référence**, **`$BASHPID` = PID du processus Bash réellement en cours**. \ No newline at end of file