Вам нужно вызвать wait()
в родителя, чтобы заблокировать до тех пор, пока ребенок не будет убит
$!
содержит идентификатор процесса (PID )только что запущенного процесса. wait $!
ожидает завершения этого процесса. sleep 12h &
работает sleep 12h
в фоновом режиме. Таким образом, этот сценарий оболочки запускает режим сна в фоновом режиме и ожидает его завершения.
Почему он не запускает sleep на переднем плане и почему имя переменной $!
пишется так странно, мне непонятно.