GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjalankan perintah setelah yang sudah berjalan, yang sudah ada selesai?

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

Linux
  1. Bagaimana Kami Menjalankan Perintah yang Disimpan Dalam Variabel?

  2. Cara Menjalankan Perintah di Running Docker Container

  3. Bagaimana saya bisa menjalankan skrip baris perintah Perl one liner dengan benar?

  1. Bagaimana Menjalankan Perintah Sebagai Administrator Sistem (root)?

  2. Bagaimana Mengintegrasikan Perintah Mv Setelah Menemukan Perintah?

  3. Bagaimana cara memeriksa apakah ssh-agent sudah berjalan di bash?

  1. Bagaimana Cara Menjalankan Perintah Di Dalam Wadah Systemd yang Berjalan?

  2. Cara memperbaiki masalah "Firefox sudah berjalan" di Linux

  3. Bagaimana membuat program terus berjalan setelah keluar dari ssh?