O comando watch
está documentado da seguinte forma:
SYNOPSIS
watch [-dhvt] [-n <seconds>] [--differences[=cumulative]] [--help]
[--interval=<sec-onds>] [--no-title] [--version] <command>
[...]
NOTE
Note that command is given to "sh -c" which means that you may need to
use extra quoting to get the desired effect.
A parte sobre fornecer o comando para sh -c
significa que o comando jobs
que você está executando via watch
está sendo executado em uma sessão de shell diferente daquela que gerou o job, portanto, não pode ser visto outro shell. O problema é fundamentalmente que jobs
é um shell embutido e deve ser executado no shell que gerou as tarefas que você deseja ver.
O mais próximo que você pode obter é usar um loop while no shell que gerou o job:
$ while true; do jobs; sleep 10; done
Você pode definir uma função em seu script de inicialização do shell para facilitar o uso:
myjobwatch() { while true; do jobs; sleep 5; done; }
Você só precisa digitar myjobwatch
.