मुझे लगता है कि यह आपके लिए कर सकता है?
eval $(printf 'ping "%s" & ' host1 host2 host3)
यह printf
प्रत्येक तर्क पर अपने प्रारूप स्ट्रिंग का फिर से उपयोग करते हुए अपने तर्कों को "ऑटो-इट्रेट" करने की क्षमता का लाभ उठाता है। printf
इसलिए उपरोक्त ping <hostname> &
प्रत्येक मेजबान के लिए तर्क के रूप में तार का एक क्रम उत्पन्न करता है , और कमांड सबस्टीट्यूट के माध्यम से कमांड के ऐसे अनुक्रम को eval
कमांड करता है ताकि उन्हें तुरंत निष्पादित किया जा सके।
printf
और eval
कमांड POSIX मानक हैं, साथ ही कमांड प्रतिस्थापन भी हैं।
एक उप-संस्करण wait
में इस तरह के पूरे कमांड को शामिल करना जिसमें इस तरह एक एड-एड शामिल है :
(eval $(printf 'ping "%s" & ' host1 host2 host3) && wait)
एक सरल के साथ सब कुछ को बाधित करने की क्षमता प्रदान करता है Ctrl+C।
इसके अलावा आप प्रत्येक ping
कमांड को शेल के सामान्य जॉब कंट्रोल के माध्यम से एकल रूप से नियंत्रित कर सकते हैं ।
यदि आपके शेल में प्रोसेस सब्स्टीट्यूशंस के लिए भी समर्थन है, तो आप निम्नलिखित का भी उपयोग कर सकते हैं:
. <(printf 'ping "%s" & ' host1 host2 host3)
कुछ वर्णों के लिए टाइप करने के लिए कम।
गिस्ट के लिए के रूप में ही है eval
, लेकिन प्रक्रिया प्रतिस्थापन के माध्यम से ping
एस .
(aka source
) कमांड के अनुक्रम को खिलाती है ।