Sim. Citando esta resposta de Gilles em U & L :
O PGID associado ao terminal pode ser definido pelo
tcsetpgrpfunção, que é chamado pelo shell quando ele inicia um externo programa em primeiro plano ou move um trabalho para o primeirofg.
Digamos que eu tenha aberto uma janela de terminal que usa bash . O grupo de processos ao qual bash pertence é o grupo de processos em primeiro plano do terminal.
Agora digamos que eu abri cat no terminal, o que acontecerá é que um novo grupo de processos será criado e cat pertencerá a esse grupo de processos, e esse grupo de processos agora se tornará o primeiro plano grupo de processos do terminal .
Quando cat termina e a execução retorna para bash , o grupo de processos ao qual bash pertence se torna novamente o grupo de processos em primeiro plano do terminal .
A minha pergunta é: como o grupo de processos de foreground do terminal mudou nestes dois tempos, é bash que o mudou?
Sim. Citando esta resposta de Gilles em U & L :
O PGID associado ao terminal pode ser definido pelo
tcsetpgrpfunção, que é chamado pelo shell quando ele inicia um externo programa em primeiro plano ou move um trabalho para o primeirofg.