GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verwende ich die Befehle watch und jobs zusammen in Bash?

Der watch Der Befehl ist wie folgt dokumentiert:

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.

Der Teil über das Geben des Befehls an sh -c bedeutet die jobs Befehl, den Sie über watch ausführen läuft in einer anderen Shell-Sitzung als derjenigen, die den Job hervorgebracht hat, sodass diese andere Shell nicht gesehen werden kann. Das Problem ist im Grunde, dass jobs ist eine eingebaute Shell und muss in der Shell ausgeführt werden, die die Jobs erzeugt hat, die Sie sehen möchten.

Das Beste, was Sie erreichen können, ist die Verwendung einer While-Schleife in der Shell, die den Job hervorgebracht hat:

$ while true; do jobs; sleep 10; done

Sie könnten eine Funktion in Ihrem Shell-Startskript definieren, um die Verwendung zu vereinfachen:

myjobwatch() { while true; do jobs; sleep 5; done; }

Dann müssen Sie nur noch myjobwatch eingeben .


Anstelle einer Schleife neige ich dazu, watch zu verwenden mit einem grep für meinen laufenden Job, zB

watch 'ps u | grep rsync'

Nicht perfekt, aber besser als eine While-Schleife :)


Linux
  1. Überwachen Sie Befehle und Aufgaben mit dem Linux-Überwachungsbefehl

  2. So verwenden Sie Bash-Verlaufsbefehle

  3. Programmieren mit Bash:Syntax und Tools

  4. So erstellen Sie einen Alias ​​und verwenden den Alias-Befehl in Linux

  5. Wie ändere ich die Cron-Shell (sh in Bash)?

So verwenden Sie die Befehle Pbcopy und Pbpaste unter Linux

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

So installieren und verwenden Sie die ZSH-Shell unter Linux

So installieren und verwenden Sie Nu Shell unter Linux

Wie verwende ich die Linux-Bash-Shell in Windows 10?

Android - Wie kann ich Shell-Befehle verwenden und mit dem darunter liegenden Linux-System interagieren?