GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso utilizzare i comandi watch e jobs insieme in Bash?

Il watch comando è documentato come segue:

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.

La parte su come dare il comando a sh -c indica il jobs comando che stai eseguendo tramite watch è in esecuzione in una sessione di shell diversa da quella che ha generato il lavoro, quindi non può essere vista dall'altra shell. Il problema è fondamentalmente che jobs è una shell incorporata e deve essere eseguita nella shell che ha generato i lavori che vuoi vedere.

Il massimo che puoi ottenere è usare un ciclo while nella shell che ha generato il lavoro:

$ while true; do jobs; sleep 10; done

Potresti definire una funzione nel tuo script di avvio della shell per renderlo più facile da usare:

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

Quindi devi solo digitare myjobwatch .


Piuttosto che un loop, tendo ad usare watch con un grep per il mio lavoro in esecuzione, ad esempio

watch 'ps u | grep rsync'

Non perfetto, ma meglio di un ciclo while :)


Linux
  1. Controlla i comandi e le attività con il comando watch di Linux

  2. Come usare i comandi della cronologia di Bash

  3. Come programmare con Bash:sintassi e strumenti

  4. Lo scopo di .bashrc e come funziona?

  5. Come cambiare Cron Shell (sh To Bash)?

Come utilizzare i comandi Pbcopy e Pbpaste su Linux

Come utilizzare il comando Declare in Linux Bash Shell

Come installare e utilizzare ZSH Shell in Linux

Come installare e utilizzare Nu Shell su Linux

Come utilizzare Linux Bash Shell in Windows 10?

Android - Come posso utilizzare i comandi della shell e interagire con il sistema Linux sottostante?