Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

334
Vistas
¿Cómo programar una tarea automáticamente con un ciclo while en bash?

Estoy tratando de programar mi secuencia de comandos para que se ejecute en dos momentos diferentes y luego seguir ejecutándose en segundo plano esperando la próxima vez que se cumplan las condiciones nuevamente.

Hasta ahora no puedo hacerlo porque después de que se cumple esa condición, este script sale automáticamente:

 function schedule { while : do hour=$(date +"%H") minute=$(date +"%M") if [[ "$hour" = "02" && "$minute" = "31" ]]; then # run some script exec /home/gfx/Desktop/myscript.sh wait schedule elif [[ "$hour" = "02" && "$minute" = "32" ]]; then # run some script exec /home/gfx/Desktop/myscript.sh wait schedule fi done } schedule

El script que ejecuto es el siguiente:

 $cat myscript.sh echo "this a message"

Cualquier idea o comentario es bienvenido, gracias!

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cuando tu lo hagas:

 exec some program something else

si el ejecutivo funciona, entonces something else nunca sucederá porque el script se reemplaza por lo que ejecutó

Tal vez en lugar de:

 exec /home/gfx/Desktop/myscript.sh wait schedule

usted quiere:

 /home/gfx/Desktop/myscript.sh & wait # schedule -- don't make a fork bomb

Como se indica en los comentarios, & + wait es un poco tonto, probablemente quieras:

 /home/gfx/Desktop/myscript.sh & # wait # schedule

o:

 /home/gfx/Desktop/myscript.sh # wait # schedule

dependiendo de si desea o no myscript en segundo plano.

TAMBIÉN debe poner un sueño en el bucle, (quizás sleep(59) ) para evitar que se repita como un alma en pena.

Creo que comienza a comprender el atractivo de cron (al menos para las cosas que no desea interactuar con su sesión de terminal).

over 4 years ago · Santiago Trujillo Denunciar

0

Los crontabs son el mejor lugar para poner estas cosas.

  • Editar crontab usando

    $ crontab-e

  • Agregue las siguientes líneas a los archivos

 31 2 * * * /home/gfx/Desktop/myscript.sh

Y guarde el archivo crontab. Tu script se ejecutará todos los días a las 2:31 am

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda