W skryptach Bash co oznacza „$! ”?


Odpowiedzi:


57

$!zawiera identyfikator procesu ostatnio wykonywanego potoku w tle. Od man bash:

Parametry specjalne

Powłoka traktuje kilka parametrów specjalnie. Do tych parametrów można się jedynie odwoływać; przypisanie do nich jest niedozwolone.

...

! - rozwija się do ID procesu ostatnio wykonanej komendy w tle (asynchronicznej).

Na przykład:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238

Mam wrażenie, że ty i slm mówicie o tym samym :)
msw

22

Ze strony podręcznika użytkownika Bash:

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

Więc $!będzie zawierać identyfikator procesu (PID) ostatniego zadania, które zostało uruchomione w tle.

Przykład

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

Referencje


1
Mam wrażenie, że ty i Chris Down mówicie o tym samym :)
CVn

2
Wydaje się, że echo tego pytania 8-).
slm

Te same głosy też się liczą!
CVn

@ MichaelKjörling - hej, wielkie umysły myślą podobnie 8-).
slm
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.