GNU/Linux >> Belajar Linux >  >> Ubuntu

Perintah Bash wait dengan Contoh

Pendahuluan

Bash wait command adalah perintah Shell yang menunggu proses yang berjalan di latar belakang selesai dan mengembalikan status keluar. Tidak seperti perintah sleep, yang menunggu selama waktu tertentu, perintah wait perintah menunggu semua atau tugas latar belakang tertentu selesai.

Tutorial ini menjelaskan wait sintaks perintah dan memberikan contoh kode skrip bash.

Prasyarat

  • Akses ke baris perintah/terminal.
  • Hak istimewa administrator (sudo).
  • Editor teks, seperti Vim atau Nano.

bash wait Sintaks Perintah

Ada berbagai cara untuk menggunakan menunggu perintah dalam skrip bash. Tabel di bawah menjelaskan setiap kasus penggunaan.

Perintah Penjelasan
wait Tanpa parameter apa pun, wait perintah menunggu semua proses latar belakang selesai sebelum melanjutkan skrip.
wait <process or job ID> PID atau ID pekerjaan yang ditambahkan menunggu proses tertentu berakhir sebelum melanjutkan skrip.
wait -n Hanya menunggu proses latar belakang berikut selesai dan mengembalikan status keluar.
wait -f Mengakhiri program terlebih dahulu menunggu tugas latar belakang selesai sebelum keluar.

Contoh Perintah Tunggu

Ada tiga parameter tambahan yang perlu diketahui saat bekerja dengan tunggu dalam skrip bash:

1. Tanda ampersand (& ) setelah perintah menunjukkan pekerjaan latar belakang.

2. $! mengambil PID dari proses latar belakang terakhir. Simpan PID sebelumnya dalam variabel saat bekerja dengan beberapa proses latar belakang.

3. $? mencetak status keluar dari proses terakhir.

Untuk melihat bagaimana ketiga parameter ini bekerja bersama, buka jendela terminal dan jalankan:

sleep 10 &
echo $!
echo $?

$! parameter menyimpan PID proses latar belakang, sedangkan $? menyimpan status keluar. Status keluar 0 menunjukkan perintah berhasil diselesaikan.

Contoh Tunggu Proses Tunggal

1. Mulailah dengan membuka terminal dan buat proses latar belakang sederhana:

sleep 10 &

2. Konfirmasi pekerjaan berjalan di latar belakang dengan:

jobs -l

3. Gunakan wait perintah tanpa parameter apa pun untuk dijeda hingga proses selesai:

wait

Terminal menunggu proses latar belakang selesai.

Setelah 10 detik (karena sleep 10 ), konsol mencetak Selesai pesan.

Contoh tunggu bash Proses Tunggal

Gunakan wait perintah untuk menunjukkan pada titik mana proses latar belakang harus dijalankan di dalam skrip.

1. Misalnya, tambahkan kode berikut di editor teks:

#!/bin/bash
echo Background process &
echo First message
echo Second message
wait
echo Third message

Jika proses background tidak menyelesaikan proses pertama dan kedua, wait perintah memanggil jeda untuk menunggu proses latar belakang selesai setelah proses kedua sebelum melanjutkan ke proses ketiga.

2. Simpan skrip sebagai single_process.sh . Di terminal, ubah izin untuk membuat skrip dapat dieksekusi:

sudo chmod +x single_process.sh

3. Jalankan skrip dengan:

./single_process.sh

Proses latar belakang selesai kapan saja sebelum wait perintah, dan skrip berlanjut.

Beberapa Proses menunggu Contoh

1. Buka editor teks dan tambahkan skrip berikut dengan beberapa proses:

#!/bin/bash
sleep 10 &
sleep 15 &
sleep 5 &
echo $(date +%T)
wait 
echo $(date +%T)

Script mencetak waktu saat ini sebelum dan sesudah wait memerintah. Tanpa parameter apa pun, program menunggu semua proses selesai.

2. Simpan skrip sebagai test.sh dan tutup filenya. Selanjutnya, buat skrip dapat dieksekusi:

sudo chmod +x test.sh

3. Terakhir, jalankan program dengan:

./test.sh

Karena proses berjalan di latar belakang, ketiganya selesai dalam lima belas detik.

4. Gunakan skrip yang sama untuk menguji kasus penggunaan berikut:

  • Tambahkan -n parameter untuk <strong>wait</strong> . Hanya proses tercepat yang selesai, dan skrip berakhir dalam sepuluh detik.
  • Tambahkan ID pekerjaan untuk menunjukkan pekerjaan mana yang harus ditunggu oleh skrip. Misalnya, wait %1 jeda untuk proses 1 (sleep 10 ) untuk diselesaikan.

Beberapa Proses bash wait Dengan Contoh PID

1. Saat bekerja dengan banyak proses, gunakan PID untuk mengidentifikasi suatu proses. Contoh skrip di bawah ini menampilkan kasus penggunaan tunggal:

#!/bin/bash
echo "Process 1 lasts for 2s" && sleep 2 &
PID=$!
echo "Process 2 lasts for 3s" && sleep 3 &
echo "Current time $(date +%T)"
wait $PID
echo "Process 1 ended at time $(date +%T) with exit status $?"
wait $!
echo "Process 2 ended at time $(date +%T) with exit status $?"

2. Simpan skrip sebagai multi_wait.sh . Jadikan skrip dapat dieksekusi dengan:

sudo chmod +x multi_wait.sh

3. Jalankan script untuk melihat outputnya:

./multi_wait.sh

Script membutuhkan waktu dua detik untuk menyelesaikan proses pertama (karena sleep 2 ) dan tiga detik untuk menyelesaikan proses kedua. Kedua proses dijalankan secara bersamaan dan keduanya selesai dalam tiga detik.


Ubuntu
  1. Perintah Sumber Linux dengan Contoh

  2. Perintah Nohup dengan Contoh

  3. '&&' vs. '&' dengan perintah 'test' di Bash

  1. Perintah wc Linux dengan Contoh

  2. Tutorial Bash HereDoc Dengan Contoh

  3. Perintah tunggu bash

  1. Perintah ip Linux dengan Contoh

  2. Perintah Netcat (nc) dengan Contoh

  3. 15 Perintah Linux ps dengan Contoh