GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo uso los comandos watch y jobs juntos en Bash?

El watch El comando se documenta de la siguiente manera:

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 sobre dar el comando a sh -c significa el jobs comando que está ejecutando a través de watch se está ejecutando en una sesión de shell diferente a la que generó el trabajo, por lo que no se puede ver ese otro shell. El problema es fundamentalmente que jobs es un shell integrado y debe ejecutarse en el shell que generó los trabajos que desea ver.

Lo más cerca que puede estar es usar un bucle while en el shell que generó el trabajo:

$ while true; do jobs; sleep 10; done

Puede definir una función en su secuencia de comandos de inicio de shell para que sea más fácil de usar:

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

Luego solo tienes que escribir myjobwatch .


En lugar de un bucle, tiendo a usar watch con un grep para mi trabajo en ejecución, por ejemplo

watch 'ps u | grep rsync'

No es perfecto, pero es mejor que un ciclo while :)


Linux
  1. Ver comandos y tareas con el comando watch de Linux

  2. Cómo usar los comandos del historial de Bash

  3. Cómo programar con Bash:Sintaxis y herramientas

  4. ¿El propósito de .bashrc y cómo funciona?

  5. ¿Cómo cambiar Cron Shell (sh a Bash)?

Cómo usar los comandos Pbcopy y Pbpaste en Linux

Cómo usar el comando Declare en Linux Bash Shell

Cómo instalar y usar ZSH Shell en Linux

Cómo instalar y usar Nu Shell en Linux

¿Cómo usar Linux Bash Shell dentro de Windows 10?

Android:¿cómo puedo usar los comandos de shell e interactuar con el sistema Linux que se encuentra debajo?