$!
содержит идентификатор процесса последний раз выполняемого фонового конвейера. От man bash
:
Специальные параметры
Оболочка рассматривает несколько параметров особенно. На эти параметры можно только сослаться; присвоение на них не позволяется.
...
!
- Разворачивает до идентификатора процесса последний раз выполняемого фона (асинхронную) команду.
Например:
$ sleep 60 &
[1] 6238
$ echo "$!"
6238
Из страницы справочника Bash:
! Expands to the process ID of the most recently executed
background (asynchronous) command.
Так $!
содержал бы идентификатор процесса (PID) последнего задания, которое было фоном.
$ sleep 100 &
[1] 18813
$ echo "$!"
18813