Dans le script Bash, quelle est la signification de «$! ”?

39

Si j'attribue une variable avec

temp=$!

quelle serait sa valeur?

Chen A.
la source

Réponses:

57

$!contient l'ID de processus du pipeline en arrière-plan exécuté le plus récemment. De man bash:

Paramètres spéciaux

Le shell traite spécialement plusieurs paramètres. Ces paramètres ne peuvent être référencés que; leur assignation n'est pas autorisée.

...

! - Développe l'ID de processus de la commande d'arrière-plan (asynchrone) exécutée le plus récemment.

Par exemple:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238
Chris Down
la source
J'ai l'impression que vous et slm dites à propos de la même chose :)
msw
22

De la page de manuel de Bash:

   !   Expands to the process ID of the most recently executed 
       background (asynchronous) command.

Donc $!, contiendrait l'ID de processus (PID) du dernier travail en arrière-plan.

Exemple

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

Les références

slm
la source
1
J'ai l'impression que vous et Chris Down dites la même chose :)
un CVn
2
Il semblerait qu’il y ait un écho à cette question 8-).
slm
Les mêmes votes comptent aussi!
un CVn
@ MichaelKjörling - les grands esprits se rencontrent 8-).
slm