Saya memiliki skrip termasuk beberapa perintah. Bagaimana saya bisa mengelompokkan perintah untuk berjalan bersama (saya ingin membuat beberapa kelompok perintah. Dalam setiap kelompok, perintah harus berjalan secara paralel (pada saat yang sama). Grup harus berjalan secara berurutan, menunggu satu kelompok selesai sebelum memulai grup berikutnya) ... yaitu
#!/bin/bash
command #1
command #2
command #3
command #4
command #5
command #6
command #7
command #8
command #9
command #10
bagaimana saya bisa menjalankan setiap 3 perintah untuk dijalankan? Saya mencoba:
#!/bin/bash
{
command #1
command #2
command #3
} &
{
command #4
command #5
command #6
} &
{
command #7
command #8
command #9
}&
command #10
Tapi ini tidak berfungsi dengan baik (saya ingin menjalankan grup perintah secara bersamaan pada waktu yang bersamaan. Saya juga harus menunggu grup pertama selesai sebelum menjalankan grup berikutnya)
Script keluar dengan pesan kesalahan!
Jawaban:
Perintah-perintah di dalam setiap grup berjalan secara paralel, dan grup-grup itu berjalan secara berurutan, masing-masing kelompok perintah paralel menunggu kelompok sebelumnya selesai sebelum memulai eksekusi.
Berikut ini adalah contoh kerja:
Asumsikan 3 kelompok perintah seperti pada kode di bawah ini. Di setiap kelompok tiga perintah dimulai di latar belakang dengan
&
.3 perintah akan dimulai hampir bersamaan dan berjalan secara paralel sementara skrip
waits
untuk mereka selesaikan.Setelah ketiga perintah di grup ketiga keluar,
command 10
akan dieksekusi.sumber
Harus bekerja (setiap komponen triplet individu akan berjalan secara berurutan, tetapi kelompok hte akan berjalan secara paralel). Anda mungkin tidak ingin shell orang tua Anda keluar sebelum grup selesai - karenanya
wait
.sumber
wait
.