Команда 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
.
clear
.N=1; while true; do jobs; sleep ${N}; clear; done;
Вместо цикла я предпочитаю использовать
watch
сgrep
моим текущим заданием, например ,Не идеально, но лучше, чем какое-то время :)
источник
Вы можете использовать цикл while и создать функцию для этой команды:
источник