GNU/Linux >> Tutoriales Linux >  >> Linux

¿Descartar la salida estándar de un comando durante T segundos?

Estoy trabajando en algunos scripts por lotes relacionados con lo siguiente:

  • Ejecutar algunos subprocesos que no terminan (asincrónicamente)
  • Espera a t segundos
  • Realizar otra tarea X por algún tiempo
  • Terminar subprocesos

Idealmente, me gustaría poder diferenciar el stdout de los subprocesos que se ha emitido antes X de lo que ha sido emitido después X .

Se me ocurren algunas ideas, aunque no tengo ni idea de cómo las implementaría:

  • Descartar salida estándar para t segundos
  • Inserte texto (por ejemplo, "Tarea X iniciada") para separar visualmente las secciones
  • Dividir stdout en varios flujos de salida

Respuesta aceptada:

Si bien podría complicar el asunto con exec y disputas adicionales de descriptores de archivos, su segunda sugerencia es la más simple. Antes de empezar X , echo una cadena de marcador en el archivo de registro.

Todos esos comandos se agregarían al mismo archivo, por lo que tal vez sería una buena idea anteponer todos los resultados de X con un marcador, para que pueda distinguir su salida de la de los comandos anteriores que aún se están ejecutando. Algo como:

{ X; } | sed 's,^,[X say] ,'

Esto simplificaría mucho más el análisis. No es seguro y para programas muy detallados, las condiciones de carrera ocurrirían a menudo.

Si está dispuesto a correr el riesgo de romper una línea de registro y puede interrumpir el primer lote de aplicaciones sin consecuencias, esto también funcionaría:

{ Y; } >> log &
sleep $t
kill -STOP %% # last job, like the same as %1
echo -e "nX started" >> log
kill -CONT %%
{ X; } >> log2

Linux
  1. ¿Cómo dividir un archivo como Split to Stdout para canalizar a un comando?

  2. ¿Pasar stdout como nombre de archivo para la línea de comando util?

  3. ¿Se puede usar el comando linux cat para escribir texto en un archivo?

  4. Problemas con la línea de comandos de Netcat

  5. Sintaxis adecuada para el comando id -r

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)

Comando de localización de Linux para principiantes (8 ejemplos)

Algunas buenas alternativas a du Command

Exa:un reemplazo moderno para ls Command