jobs funciona apenas para a instanciação do shell que criou os jobs. jobs n
usa números não o pid. Uma vez que o shell é executado dentro de um script (outro novo processo), o shell antigo que iniciou o script, os jobs (emitidos no shell antigo) não podem mais fazer referência ao job # 1 no novo shell.
Por quê? Porque o shell atual poderia ter seu próprio trabalho # 1. O UNIX / Linux mantém o que é conhecido como grupo de processos ou sessão. O líder do grupo da sessão é o processo que possui o tty e interage com ele através do teclado. Procure a descrição da função setsid () em seu manual. Se o processo foi iniciado e ainda é executado como um filho sob o shell pai antigo - o líder, o comando jobs funcionará. Caso contrário, não.