Saya kira ini bisa lakukan untuk Anda?
eval $(printf 'ping "%s" & ' host1 host2 host3)
Itu mengambil keuntungan dari printfkemampuan untuk "auto-iterate" argumennya sambil menggunakan kembali format string pada setiap argumen. printfOleh karena itu di atas menghasilkan urutan ping <hostname> &string untuk setiap host yang disediakan sebagai argumen, dan mengumpankan urutan perintah tersebut melalui Substitusi Perintah ke evalperintah agar segera dieksekusi.
printfdan evalperintah adalah standar POSIX, serta Substitusi Perintah.
Lampirkan seluruh perintah seperti itu dalam subkulit yang terdiri dari dan-ed waitseperti ini:
(eval $(printf 'ping "%s" & ' host1 host2 host3) && wait)
memberikan kemampuan untuk menginterupsi segalanya sesuka hati dengan yang sederhana Ctrl+C.
Jika tidak, Anda dapat mengontrol setiap pingperintah secara tunggal melalui kontrol pekerjaan shell yang biasa.
Jika shell Anda juga memiliki dukungan untuk Substitusi Proses, Anda juga dapat menggunakan yang berikut:
. <(printf 'ping "%s" & ' host1 host2 host3)
untuk beberapa karakter kurang untuk mengetik.
Intinya sama dengan untuk eval, tetapi mengumpankan urutan pings ke perintah .(alias source) melalui Proses Substitusi.