আমি মনে করি এটি আপনার জন্য কি করতে পারে?
eval $(printf 'ping "%s" & ' host1 host2 host3)
এটি printf
প্রতিটি যুক্তির উপর তার বিন্যাসের স্ট্রিংটিকে পুনরায় ব্যবহার করার সময় এর আর্গুমেন্টগুলিকে "স্ব-পুনরাবৃত্তি" করার ক্ষমতার সুযোগ নেয় । উপরের printf
ফলে ping <hostname> &
প্রতিটি হোস্টের জন্য আর্গুমেন্ট হিসাবে সরবরাহ করা স্ট্রিংগুলির একটি ক্রম তৈরি করে এবং কমান্ড সাবস্টিটিউশনের মাধ্যমে কমান্ডকে eval
অবিলম্বে সম্পাদন করার জন্য কমান্ডের এই ক্রমটি ফিড করে।
printf
এবং eval
কমান্ডগুলি পসিএক্স স্ট্যান্ডার্ড, পাশাপাশি কমান্ড সাবস্টিটিউশন।
এ জাতীয় এবং কমান্ডের সমন্বয়ে একটি সাব-শেলটিতে পুরো পুরো কমান্ডটি আবদ্ধ করা wait
:
(eval $(printf 'ping "%s" & ' host1 host2 host3) && wait)
একটি সাধারণ দিয়ে ইচ্ছায় সবকিছুতে বাধা দেওয়ার ক্ষমতা সরবরাহ করে Ctrl+C।
অন্যথায় আপনি প্রতিটি ping
কমান্ড শেলের সাধারণ কাজের নিয়ন্ত্রণের মাধ্যমে এককভাবে নিয়ন্ত্রণ করতে পারেন ।
যদি আপনার শেলটির প্রক্রিয়া বিকল্পগুলির পক্ষেও সমর্থন থাকে তবে আপনি নিম্নলিখিতগুলিও ব্যবহার করতে পারেন:
. <(printf 'ping "%s" & ' host1 host2 host3)
কয়েক অক্ষর টাইপ কম।
গিস্টটি সমান eval
, তবে প্রসেস সাবস্টিটিউশন এর মাধ্যমে (ওরফে ) কমান্ডকে ping
গুলি এর ক্রম ফিড করে ।.
source