Ответы:
$!
содержит идентификатор процесса последнего выполненного фонового конвейера. От 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