GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ejecutar un comando después de que finalice uno existente que ya se está ejecutando?

Puede separar varios comandos por ; , por lo que se ejecutan secuencialmente, por ejemplo:

really_long_script.sh ; echo Finished

Si desea ejecutar el siguiente programa solo si el script terminó con el código de retorno 0 (lo que generalmente significa que se ejecutó correctamente), entonces:

really_long_script.sh && echo OK

Si desea lo contrario (es decir, continuar solo si el comando actual ha fallado), entonces:

really_long_script.sh || echo FAILED

Puede ejecutar su secuencia de comandos en segundo plano (pero tenga cuidado, la salida de secuencias de comandos (stdout y stderr ) continuaría yendo a su terminal a menos que lo redirija a alguna parte), y luego wait para ello:

really_long_script.sh &
dosomethingelse
wait; echo Finished

Si ya ejecutó el script, puede suspenderlo con Ctrl-Z y luego ejecute algo como:

fg ; echo Finished

Donde fg trae el proceso suspendido a primer plano (bg haría que se ejecutara en segundo plano, más o menos como comenzó con & )


También puede usar el control de trabajo de bash. Si empezaste

$ really_long_script.sh

luego presione ctrl+z para suspenderlo:

^Z
[1]+  Stopped                 really_long_script.sh
$ bg

para reiniciar el trabajo en segundo plano (como si lo iniciara con really_long_script.sh & ). Entonces puede esperar este trabajo en segundo plano con

$ wait N && echo "Successfully completed"

donde N es el ID del trabajo (probablemente 1 si no ejecutó ningún otro trabajo en segundo plano) que también se muestra como [1] arriba.


Si el proceso no se ejecuta en el tty actual, intente esto:

watch -g ps -opid -p <pid>; mycommand

Linux
  1. ¿Cómo ejecutamos un comando almacenado en una variable?

  2. ¿Cómo integrar el comando Mv después del comando Buscar?

  3. Cómo solucionar el problema "Firefox ya se está ejecutando" en Linux

  4. ¿Cómo hacer que un programa continúe ejecutándose después de cerrar la sesión de ssh?

  5. ¿Cómo usar nohup para continuar ejecutando un comando después de que el usuario cierre la sesión?

Cómo ejecutar el comando Sudo sin contraseña

Cómo ejecutar comandos de Linux en segundo plano

[Consejos de Bash] Cómo cd y ls en un solo comando

[Consejos de Bash] Cómo cp o mv y cd en un solo comando

Cómo ejecutar un comando periódicamente en Linux usando Watch

Cómo ejecutar múltiples comandos de Linux en un solo comando