Anda dapat memisahkan beberapa perintah dengan ;
, sehingga dieksekusi secara berurutan, misalnya:
really_long_script.sh ; echo Finished
Jika Anda ingin menjalankan program berikutnya hanya jika skrip selesai dengan kode kembalian 0 (yang biasanya berarti telah dijalankan dengan benar), maka:
really_long_script.sh && echo OK
Jika Anda menginginkan yang sebaliknya (mis. Lanjutkan hanya jika perintah saat ini gagal), daripada:
really_long_script.sh || echo FAILED
Anda dapat menjalankan skrip Anda di latar belakang (tetapi hati-hati, keluaran skrip (stdout
dan stderr
) akan terus masuk ke terminal Anda kecuali Anda mengarahkannya ke suatu tempat), lalu wait
untuk itu:
really_long_script.sh &
dosomethingelse
wait; echo Finished
Jika Anda telah menjalankan skrip, Anda dapat menangguhkannya dengan Ctrl-Z
, lalu jalankan sesuatu seperti:
fg ; echo Finished
Dimana fg
membawa proses yang ditangguhkan ke latar depan (bg
akan membuatnya berjalan di latar belakang, seperti memulai dengan &
)
Anda juga dapat menggunakan kontrol pekerjaan bash. Jika Anda memulai
$ really_long_script.sh
lalu tekan ctrl+z untuk menangguhkannya:
^Z
[1]+ Stopped really_long_script.sh
$ bg
untuk memulai kembali pekerjaan di latar belakang (sama seperti jika memulainya dengan really_long_script.sh &
). Kemudian Anda bisa menunggu pekerjaan latar belakang ini dengan
$ wait N && echo "Successfully completed"
di mana N adalah ID pekerjaan (mungkin 1 jika Anda tidak menjalankan pekerjaan latar belakang lainnya) yang juga ditampilkan sebagai [1]
di atas.
Jika proses tidak berjalan pada tty saat ini, coba ini:
watch -g ps -opid -p <pid>; mycommand