قم بتنفيذ العديد من البرامج في نفس الوقت في نص تهيئة/باش

StackOverflow https://stackoverflow.com/questions/430176

  •  08-07-2019
  •  | 
  •  

سؤال

مرحبًا ، أنا أعمل مع جهاز محاكاة تستخدم البرامج النصية RCS للتمهيد ، هذا هو البرنامج النصي الخاص بي

cd /tests
./test1 &
./test2 &
./test3 &
./test4 
exit

ما أريده هو إجراء كل الاختبار في نفس الوقت وأن يتم تنفيذ أمر الخروج فقط عند انتهاء جميع الاختبارات السابقة. وليس فقط عند انتهاء الاختبار 4 ، هل هذا ممكن؟ شكرًا لك.

هل كانت مفيدة؟

المحلول

يمكنك استخدام الانتظار:

./test1 &
./test2 &
./test3 &
./test4 &
wait

من صفحة باش مان:

انتظر [n ...] انتظر كل عملية محددة وأرجع حالة الإنهاء. قد يكون كل N معرف العملية أو مواصفات الوظيفة ؛ إذا تم تقديم مواصفات مهمة ، يتم انتظار جميع العمليات في خط أنابيب الوظيفة. إذا لم يتم إعطاء N ، يتم انتظار جميع عمليات الأطفال النشطة حاليًا ، وحالة العودة هي صفر. إذا تحدد N عملية أو وظيفة غير موجودة ، فإن حالة الإرجاع هي 127. وإلا ، فإن حالة الإرجاع هي حالة الخروج من العملية الأخيرة أو الوظيفة التي تنتظرها.

نصائح أخرى

xargs يمكن أن تدعم موازية

هكذا مثل هذا:

seq 4|xargs -i -n 1 -P 4 ./test{} 

شيء على غرار

cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit

(أنا أفترض قذيفة باش)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top