watch
příkaz je zdokumentován následovně:
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.
Část o zadávání příkazu sh -c
znamená jobs
příkaz, který spouštíte přes watch
běží v jiné relaci shellu, než je ta, která vytvořila úlohu, takže není vidět, že jiný shell. Problém je v podstatě v tom, že jobs
je vestavěný shell a musí být spuštěn v shellu, který vytvořil úlohy, které chcete vidět.
Nejbližší, co se můžete dostat, je použít smyčku while v shellu, který zplodil úlohu:
$ while true; do jobs; sleep 10; done
Můžete definovat funkci ve vašem spouštěcím skriptu shellu, abyste ji mohli snáze používat:
myjobwatch() { while true; do jobs; sleep 5; done; }
Pak stačí napsat myjobwatch
.
Spíše než smyčku mám tendenci používat watch
s grep
pro mou běžeckou práci, např.
watch 'ps u | grep rsync'
Není to dokonalé, ale lepší než smyčka while :)
Jak zjistit číslo modelu linuxové diskové jednotky?
jak ssh dva počítače za NAT a Firewallem, bez třetího počítače