Porque as notificações de trabalho estão vinculadas ao modo interativo, não ao modo monitor. A descrição do que set -m
faz é bastante enganosa. Ele tem vários efeitos, como forçar a execução de pipelines em seu próprio grupo de processos, e faz com que as traps no CHLD sejam acionadas para cada processo em segundo plano. Na verdade, não faz nada para afetar se o "controle de trabalho" funciona. Você ainda pode usar todos os comandos relacionados ao trabalho e consultar trabalhos usando jobspecs, mesmo com set +m
, desde que o sistema operacional ofereça suporte ao controle de tarefas.
O mesmo se aplica ao ksh. Não estou ciente de nenhuma maneira de desativar ou ocultar as notificações de emprego. Se o Bash for iniciado com o modo interativo, você sempre os verá, mesmo se posteriormente set +i
(que AFAICT não tem efeito após a inicialização). Acho que o set +b
torna as coisas um pouco mais toleráveis. Se você está escrevendo um script que faz uso de controle de tarefas para um multiprocessamento sofisticado, então você não terá que se preocupar com isso de qualquer maneira.