Více příkazů můžete oddělit pomocí ; , takže se spouštějí postupně, například:
really_long_script.sh ; echo Finished
Pokud si přejete spustit další program pouze v případě, že skript skončil s návratovým kódem 0 (což obvykle znamená, že se provedl správně), pak:
really_long_script.sh && echo OK
Pokud chcete opak (tj. pokračovat pouze v případě, že aktuální příkaz selhal), pak:
really_long_script.sh || echo FAILED
Svůj skript můžete spouštět na pozadí (ale pozor, výstup skriptů (stdout a stderr ) bude nadále přecházet na váš terminál, pokud jej někam nepřesměrujete), a poté wait za to:
really_long_script.sh &
dosomethingelse
wait; echo Finished
Pokud jste již skript spustili, můžete jej pozastavit pomocí Ctrl-Z a poté proveďte něco jako:
fg ; echo Finished
Kde fg přenese pozastavený proces do popředí (bg by to běželo na pozadí, skoro jako by to začínalo & )
Můžete také použít ovládání úlohy bash. Pokud jste začali
$ really_long_script.sh
poté jej pozastavíte stisknutím ctrl+z:
^Z
[1]+ Stopped really_long_script.sh
$ bg
restartujte úlohu na pozadí (stejně jako byste ji spustili s really_long_script.sh & ). Pak můžete počkat na tuto úlohu na pozadí s
$ wait N && echo "Successfully completed"
kde N je ID úlohy (pravděpodobně 1, pokud jste nespouštěli žádné jiné úlohy na pozadí), které se také zobrazuje jako [1] výše.
Pokud proces na aktuálním tty neběží, zkuste toto:
watch -g ps -opid -p <pid>; mycommand