In Bash scripting, what's the meaning of " $! "?
$!
contains the process ID of the most recently executed background pipeline. From man bash
:
Special Parameters
The shell treats several parameters specially. These parameters may only be referenced; assignment to them is not allowed.
...
!
- Expands to the process ID of the most recently executed background (asynchronous) command.
For example:
$ sleep 60 &
[1] 6238
$ echo "$!"
6238
From Bash's man page:
! Expands to the process ID of the most recently executed
background (asynchronous) command.
So $!
would contain the process ID (PID) of the last job that was backgrounded.
Example
$ sleep 100 &
[1] 18813
$ echo "$!"
18813
References
- bash man page