انتظر الأمر في لينكس

Wait Command Linux



انتظر هو أمر مدمج في Linux ينتظر إكمال أي عملية قيد التشغيل. انتظر يتم استخدام الأمر مع معرف عملية معين أو معرّف الوظيفة. عندما يتم تشغيل عمليات متعددة في shell ، فلن يُعرف إلا معرّف العملية للأمر الأخير بواسطة الصدفة الحالية. إذا تم تنفيذ أمر الانتظار هذه المرة ، فسيتم تطبيقه على الأمر الأخير. إذا لم يتم إعطاء معرف العملية أو معرّف الوظيفة مع أمر الانتظار ، فسوف ينتظر حتى تكتمل جميع العمليات الفرعية الحالية ويعيد حالة الخروج.

تعتمد قيمة حالة الخروج لأمر الانتظار على الأمر المشار إليه بواسطة المعامل الأخير المحدد. عندما تنتهي أي عملية بشكل غير طبيعي ، فإن حالة الخروج ستكون أكبر من 128 ويجب أن تكون مختلفة عن قيم حالة الخروج للأوامر الأخرى. انتظر يخرج الأمر بالقيمة 0 عندما يستدعي بدون معاملات وتنتهي جميع معرّفات العمليات من خلال الصدفة الحالية. إذا اكتشف أمر الانتظار أي خطأ ، فإنه يقوم بإرجاع أي قيمة من 1 إلى 126. إذا كان معرف العملية الأخير غير معروف ، فسيتم إنهاء أمر الانتظار بقيمة 127. كيف يمكنك استخدام أمر الانتظار في Linux موضح في هذا البرنامج التعليمي.







مثال 1: استخدام أمر الانتظار لعمليات متعددة

بعد تنفيذ البرنامج النصي التالي ، سيتم تشغيل عمليتين في الخلفية ويتم تخزين معرف العملية لأمر echo الأول في المتغير process_id $. عند تنفيذ أمر الانتظار باستخدام $ process_id ، سينتظر الأمر التالي حتى يكتمل مهمة أمر echo الأول. يتم استخدام أمر الانتظار الثاني مع ' $! وهذا يشير إلى معرف العملية لآخر عملية قيد التشغيل. ' 'لقراءة قيمة الحالة لأمر الانتظار.



#!/bin/bash
رما - طرد - قذف 'اختبار الانتظار command1' &
معرف العمليه=$!
رما - طرد - قذف 'اختبار الانتظار command2' &
انتظر $ process_id
رما - طرد - قذفمهنة1خرج مع الوضع
انتظر $!
رما - طرد - قذفمهنة2خرج مع الوضع

انتاج:



$سحقwait1.sh





مثال 2: اختبار أمر الانتظار بعد استخدام أمر kill

في البرنامج النصي التالي ، يتم تنفيذ أمر الانتظار بعد إنهاء العملية. يعمل الأمر sleep كعملية في الخلفية ويتم تنفيذ أمر kill لإنهاء عملية التشغيل. بعد ذلك يتم تنفيذ أمر الانتظار مع معرف العملية للعملية المنتهية. سيظهر الإخراج معرف العملية للعملية المنتهية.

#!/bin/bash
رما - طرد - قذف 'اختبار انتظار الأمر'
نايم عشرين &
pid=$!
قتل دولار pid
انتظر دولار pid
رما - طرد - قذف دولار pidتم إنهاؤه.

انتاج:



$سحقwait2.sh

مثال 3: تحقق من قيمة حالة الخروج

في النص التالي ، الوظيفة التحقق من() يتم استدعاؤه من خلال قيمتي وسيطة. يُناقش في بداية البرنامج التعليمي أنه إذا تم تنفيذ أمر الانتظار بنجاح ، فستكون قيمة الإنهاء 0 وإذا اكتشف أمر الانتظار أي خطأ ، فسيعيد أي قيمة بين 1 و 126. بعد تشغيل البرنامج النصي ، إذا قمت بتمرير 0 كوسيطة ثانية value ثم wait ينتهي الأمر بنجاح وإذا مررت أي قيمة أكثر من الصفر ، فإنه ينتهي دون جدوى.

#!/bin/bash
وظيفةالتحقق من()
{
رما - طرد - قذف 'السكون لمدة $ 1 ثانية'
نايم 1 دولار
خروج 2 دولار
}
التحقق من1 دولار 2 دولار &
ب=$!
رما - طرد - قذف 'التحقق من الحالة'
انتظر ب && رما - طرد - قذفنعم|| رما - طرد - قذفليس جيدا

انتاج:

$سحقwait3.sh3 0
$سحقwait3.sh3 5

نأمل أن يساعد هذا البرنامج التعليمي في تعلم استخدام أمر الانتظار بشكل صحيح. هناك أمر آخر في Linux ، اسمه نايم لانتظار عدد معين من المرات ولكن هناك بعض الاختلافات بين هذه الأوامر. إذا كنت مهتمًا بمعرفة أمر النوم ثم يمكنك زيارة هذا الرابط.