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