لینکس میں کمانڈ کا انتظار کریں۔

Wait Command Linux



انتظار کرو لینکس کی ایک بلٹ ان کمانڈ ہے جو کسی بھی چلنے والے عمل کو مکمل کرنے کا انتظار کرتی ہے۔ انتظار کرو کمانڈ کسی خاص عمل کی شناخت یا جاب آئی ڈی کے ساتھ استعمال ہوتی ہے۔ جب شیل میں ایک سے زیادہ عمل چل رہے ہوں گے تو صرف آخری کمانڈ کی پروسیس آئی ڈی موجودہ شیل سے معلوم ہوگی۔ اگر اس وقت انتظار کمانڈ پر عمل درآمد کیا جاتا ہے ، تو اسے آخری کمانڈ کے لیے لاگو کیا جائے گا۔ اگر ویٹ کمانڈ کے ساتھ کوئی پروسیس آئی ڈی یا جاب آئی ڈی نہیں دی گئی ہے تو یہ تمام موجودہ چائلڈ پروسیس کے مکمل ہونے کا انتظار کرے گا اور ایگزٹ سٹیٹس لوٹائے گا۔

ویٹ کمانڈ کی ایگزٹ سٹیٹس ویلیو کمانڈ پر منحصر ہوتی ہے جو کہ آخری آپریینڈ کی طرف سے بتائی گئی ہے۔ جب کوئی عمل غیرمعمولی طور پر ختم ہوجاتا ہے تو باہر نکلنے کی حیثیت 128 سے زیادہ ہوگی اور دوسرے کمانڈز کی ایگزٹ اسٹیٹس ویلیوز سے مختلف ہوگی۔ انتظار کرو کمانڈ ویلیو 0 کے ساتھ باہر نکلتی ہے جب یہ بغیر کسی آپریشن کے کال کرتی ہے اور تمام پروسیس IDs کو معلوم ہوتا ہے جو موجودہ شیل سے ختم ہوتا ہے۔ اگر ویٹ کمانڈ کسی غلطی کا پتہ لگاتا ہے تو یہ 1 سے 126 تک کی کوئی بھی قیمت لوٹاتا ہے۔







مثال -1: ایک سے زیادہ عمل کے لیے ویٹ کمانڈ کا استعمال۔

مندرجہ ذیل اسکرپٹ پر عمل کرنے کے بعد ، پس منظر میں دو عمل چلیں گے اور پہلے ایکو کمانڈ کی پروسیس آئی ڈی $ process_id متغیر میں محفوظ ہے۔ جب انتظار کی کمانڈ $ process_id کے ساتھ عمل میں لائی جاتی ہے تو اگلی کمانڈ پہلی ایکو کمانڈ کا کام مکمل کرنے کا انتظار کرے گی۔ دوسرا انتظار کمانڈ 'کے ساتھ استعمال کیا جاتا ہے $! 'اور یہ آخری چلنے والے عمل کی پروسیس آئی ڈی کی نشاندہی کرتا ہے۔ ‘‘ انتظار کمانڈ کی سٹیٹس ویلیو پڑھنے کے لیے استعمال کیا جاتا ہے۔



#!/bin/bash
باہر پھینک دیا انتظار کی کمانڈ 1 کی جانچ &
process_id=$!
باہر پھینک دیا انتظار کی کمانڈ 2 کی جانچ &
انتظار کرو $ process_id۔
باہر پھینک دیانوکریحیثیت کے ساتھ باہر نکل گیا
انتظار کرو $!
باہر پھینک دیانوکریحیثیت کے ساتھ باہر نکل گیا

آؤٹ پٹ:



$لشکرwait1.sh





مثال 2: کِل کمانڈ استعمال کرنے کے بعد ویٹ کمانڈ کی جانچ کریں۔

مندرجہ ذیل سکرپٹ میں ، عمل کو ختم کرنے کے بعد ویٹ کمانڈ پر عمل درآمد کیا جاتا ہے۔ سلیپ کمانڈ پس منظر کے عمل کے طور پر چل رہی ہے اور چلانے کے عمل کو ختم کرنے کے لیے کِل کمانڈ پر عمل کیا جاتا ہے۔ اس کے بعد انتظار کی کمانڈ ختم شدہ عمل کے عمل ID کے ساتھ عمل میں لائی جاتی ہے۔ آؤٹ پٹ ختم شدہ عمل کا عمل ID دکھائے گا۔

#!/bin/bash
باہر پھینک دیا 'انتظار کمانڈ کی جانچ'
نیند بیس &
پی آئی ڈی=$!
مار ڈالو $ pid
انتظار کرو $ pid
باہر پھینک دیا $ pidختم کر دیا گیا

آؤٹ پٹ:



$لشکرwait2.sh

مثال 3: ایگزٹ سٹیٹس ویلیو چیک کریں۔

مندرجہ ذیل اسکرپٹ میں ، فنکشن۔ چیک () دو دلیل اقدار کی طرف سے کہا جاتا ہے. اس ٹیوٹوریل کے آغاز میں بحث کی گئی ہے کہ اگر ویٹ کمانڈ کامیابی کے ساتھ عمل میں آئی تو ایگزٹ ویلیو 0 ہوگی اور اگر ویٹ کمانڈ کسی غلطی کا پتہ لگائے گی تو یہ 1 اور 126 کے درمیان کوئی بھی قیمت لوٹائے گی۔ ویلیو پھر ویٹ کمانڈ کامیابی کے ساتھ ختم ہو جاتا ہے اور اگر آپ صفر سے زیادہ کوئی ویلیو پاس کرتے ہیں تو یہ ناکام ہو جاتا ہے۔

#!/bin/bash
فنکشنچیک کریں()
{
باہر پھینک دیا '$ 1 سیکنڈ کے لیے سوئے'
نیند $ 1
باہر نکلیں $ 2۔
}
چیک کریں$ 1 $ 2۔ &
ب=$!
باہر پھینک دیا 'حالت کی جانچ پڑتال'
انتظار کرو $ b && باہر پھینک دیاٹھیک ہے|| باہر پھینک دیاصحیح نہیں ہے

آؤٹ پٹ:

$لشکرwait3.sh
$لشکرwait3.sh

امید ہے کہ یہ سبق استعمال کے انتظار کی کمانڈ کو صحیح طریقے سے سیکھنے میں مددگار ثابت ہوگا۔ لینکس میں ایک اور کمانڈ ہے ، جس کا نام ہے۔ نیند بعض اوقات کا انتظار کرنا لیکن ان احکامات کے درمیان کچھ اختلافات ہیں۔ اگر آپ کے بارے میں جاننا دلچسپی رکھتے ہیں۔ نیند کا حکم پھر آپ اس لنک پر جا سکتے ہیں۔