Команда watch
задокументирована следующим образом:
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.
Часть о предоставлении команды sh -c
означает, что jobs
команда, с которой вы работаете, watch
выполняется в другом сеансе оболочки, чем тот, который породил задание, поэтому она не может быть видна этой другой оболочке. По сути, проблема в том, что jobs
это встроенная оболочка, которая должна запускаться в оболочке, которая порождает задания, которые вы хотите видеть.
Самое близкое, что вы можете получить, это использовать цикл while в оболочке, которая породила задание:
$ while true; do jobs; sleep 10; done
Вы можете определить функцию в вашем скрипте запуска оболочки, чтобы упростить ее использование:
myjobwatch() { while true; do jobs; sleep 5; done; }
Тогда вам просто нужно напечатать myjobwatch
.