Na sua pergunta, existem alguns equívocos. Em primeiro lugar, esse comportamento não está limitado aos comandos do Gtk. Em segundo lugar, a notificação não é enviada após o "próximo comando", mas no próximo prompt (digamos, assim que você digitar a tecla Enter).
O que você está fazendo é chamado Job Control . No bash você pode enviar comandos para o "background" para que eles não bloqueiem a linha de comando. Por exemplo, tente executar gedit
no terminal. A janela do Gedit deve aparecer e a linha de comando deve ser "bloqueada", ou seja, você não pode digitar nenhum novo comando a menos que você feche o Gedit.
Uma solução para esse comportamento de bloqueio de processos "de longa execução" é enviar seus comandos para o segundo plano na chamada. Desta forma, o comando não irá bloquear e você poderá continuar trabalhando na linha de comando.
Uma maneira de enviar um comando para o segundo plano é usando o &
após o comando. Continuando com o exemplo do Gedit, você pode iniciá-lo no plano de fundo executando
gedit &
Agora você notará que o prompt de comando é impresso imediatamente e você pode executar novos comandos (compare isso com simplesmente executando gedit
sem "e" comercial). Você também notará as informações extras sobre o novo "trabalho" que acabou de criar: o número do trabalho entre parênteses e seu PID.
Quando o trabalho terminar (normalmente ou porque você o matou), o bash irá notificá-lo com algo semelhante a:
[1]+ Done gedit &
(O 1
é o número do trabalho e à direita você tem o comando com o qual você criou este trabalho, caso tenha esquecido: -)
Se você tiver vários trabalhos em segundo plano, poderá usar o comando jobs
para obter uma lista com seus status.
Concluindo, você não precisa adicionar o "e" comercial a menos que queira executar outro comando imediatamente.
Para referências e outros aspectos interessantes sobre o controle do trabalho, leia: