GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser les commandes watch et jobs ensemble dans Bash ?

Le watch commande est documentée comme suit :

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 partie sur le fait de donner la commande à sh -c signifie le jobs commande que vous exécutez via watch s'exécute dans une session shell différente de celle qui a généré le travail, de sorte qu'il ne peut pas être vu que l'autre shell. Le problème est fondamentalement que jobs est un shell intégré et doit être exécuté dans le shell qui a généré les travaux que vous souhaitez voir.

Le plus proche que vous pouvez obtenir est d'utiliser une boucle while dans le shell qui a généré le travail :

$ while true; do jobs; sleep 10; done

Vous pouvez définir une fonction dans votre script de démarrage du shell pour faciliter son utilisation :

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

Ensuite, il vous suffit de taper myjobwatch .


Plutôt qu'une boucle, j'ai tendance à utiliser watch avec un grep pour mon travail en cours d'exécution, par exemple

watch 'ps u | grep rsync'

Pas parfait, mais mieux qu'une boucle while :)


Linux
  1. Regardez les commandes et les tâches avec la commande Linux watch

  2. Comment utiliser les commandes d'historique de Bash

  3. Comment programmer avec Bash :syntaxe et outils

  4. Comment créer un alias et utiliser la commande Alias ​​sous Linux

  5. Comment changer le shell Cron (sh en bash) ?

Comment utiliser les commandes Pbcopy et Pbpaste sous Linux

Comment utiliser la commande Declare dans Linux Bash Shell

Comment installer et utiliser ZSH Shell sous Linux

Comment installer et utiliser Nu Shell sous Linux

Comment utiliser Linux Bash Shell dans Windows 10 ?

Android - Comment puis-je utiliser les commandes shell et interagir avec le système Linux en dessous ?