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