GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu v Bash používat společně příkazy watch a jobs?

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 :)


Linux
  1. Sledujte příkazy a úkoly pomocí příkazu watch v systému Linux

  2. Jak používat příkazy historie Bash

  3. Jak programovat s Bash:Syntaxe a nástroje

  1. Jak vytvořit alias a používat příkaz Alias ​​v Linuxu

  2. Účel .bashrc a jak to funguje?

  3. Jak změnit Cron Shell (sh to Bash)?

  1. Jak používat příkazy a možnosti SFTP

  2. Jak mohu použít Bash jako přihlašovací shell, když mi Sysadmin odmítne dovolit to změnit?

  3. Jak nainstalovat a používat příkaz Ping v Linuxu