لیونکس / یونیسی کمان کی توقع

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

امید ہے کہ امید اور ٹی کے ایک مرکب ہے. یہ توقع ہے کہ توقع اور ٹی کے کی خواہش ہے. امید ہے کہ براہ راست TC کے بغیر C یا C ++ استعمال ہوسکتا ہے.

نام "توقعات" کے خیال سے آتا ہے / آپکو آپکوپ، کرمیٹ اور دوسرے موڈیم کنٹرول پروگراموں کے ذریعہ مقبول کردہ ترتیبات کی توقع ہے. تاہم، آپکو کے برعکس، امید ہے کہ عام طور پر یہ توقع ہے کہ کسی بھی پروگرام اور کام کے ساتھ صارف سطح کے کمانڈر کے طور پر چل سکتا ہے. امید ہے کہ ایک ہی وقت میں بہت سے پروگراموں سے بات چیت ہوسکتی ہے.

کیا امید ہے

مثال کے طور پر، یہاں کچھ چیزیں ہیں جو متوقع کمانڈ کر سکتے ہیں:

شیل یہ کام نہیں کر سکتا کیوں کہ مختلف وجوہات ہیں. امید ہے کہ تمام ممکن ہو.

عام طور پر، امید ہے کہ کسی پروگرام کو چلانے کے لئے امید ہے کہ اس پروگرام اور صارف کے درمیان تعامل کی ضرورت ہے. یہ سب ضروری ہے کہ بات چیت پروگرامی طور پر نمایاں ہوسکتی ہے. متوقع پروگرام کو کنٹرول کرنے کے بغیر صارف کو واپس کنٹرول بھی دے سکتا ہے. اسی طرح، صارف کسی بھی وقت اسکرپٹ میں کنٹرول واپس کرسکتا ہے.

استعمال

توقع ہے کہ سینٹیفکیشن کو سنبھالنے کیلئے حکموں کی فہرست کے لئے cmdfile پڑھا جائے. امید ہے کہ ان نظاموں پر واضح طور پر انکوائس کیا جا سکتا ہے جو # کی حمایت کرتے ہیں. اسکرپٹ کو نشان زد کرنے کے طور پر عملدرآمد کے طور پر نشان لگا کر سکرپٹ میں پہلی سطر بنانا:

#! / usr / local / bin / expect -f

بے شک، راستے کو صحیح طور پر بیان کیا جانا چاہیے جہاں زندگی کی توقع ہے. / usr / local / bin صرف ایک مثال ہے.

اسکرپٹ میں کسی بھی شخص سے پہلے پھانسی دی جانے والی ایک پرچم کو ایک کمانڈ کا سامنا کرنا پڑتا ہے. شیل کی طرف سے ٹوٹ جانے سے روکنے کے لئے کمانڈ کو حوالہ دیا جانا چاہئے. یہ اختیار کئی بار استعمال کیا جا سکتا ہے. ایک ہی سی کے ساتھ ایک سے زیادہ احکامات کو سنکولن کے ساتھ الگ کر دیا جاسکتا ہے. حکموں کے مطابق وہ حکم پیش کئے جاتے ہیں. Expectk کا استعمال کرتے ہوئے، یہ اختیار غیر معمولی طور پر بیان کیا جاتا ہے.

ڈی جی پرچم کچھ تشخیصی پیداوار کو قابل بناتا ہے، جس میں بنیادی طور پر احکامات کی داخلی سرگرمی جیسے متوقع اور بات چیت کی اطلاع ہوتی ہے. یہ پرچم ایک مثالی اثر کے طور پر "exp_internal 1" کے طور پر ایک متوقع اسکرپٹ کے آغاز میں ہے، اس کے علاوہ امید کا ورژن چھپی ہوئی ہے.

ڈی ڈی پرچم ایک انٹرایکٹو ڈیبگر قابل بناتا ہے. ایک انوائزر قدر کی پیروی کرنا چاہئے. ڈیبگر اگلا Tcl طریقہ کار سے پہلے کنٹرول لے جائے گا اگر قیمت غیر صفر ہے یا اگر ^ ^ دباؤ یا ایک وقفے وقفے سے ہٹ جاتا ہے یا سکرپٹ میں دوسرے مناسب ڈیبگر کمانڈ ظاہر ہوتا ہے. جب Exppectk کا استعمال کرتے ہوئے، یہ اختیار ڈیبگ کے طور پر بیان کیا جاتا ہے.

ایف ایف پرچم کو ایک ایسی فائل پیش کرتا ہے جس سے حکم دیتا ہے. پرچم خود اختیاری ہے کیونکہ # صرف استعمال کرتے وقت صرف مفید ہے! تجاویز، تاکہ کمانڈ لائن پر دوسرے دلائل فراہم کی جائیں. Expectk کا استعمال کرتے ہوئے، یہ اختیار کے طور پر مخصوص ہے.

پہلے سے طے شدہ طور پر، کمانڈ کی فائل کو میموری میں پڑھا جاتا ہے اور اس کی مکمل طور پر لاگو کیا جاتا ہے. فائلوں کو ایک وقت میں ایک سطر پڑھنے کے لئے یہ کبھی کبھار ضروری ہے. اس طرح سے سنبھالنے کے لئے خود مختار فائلوں کو مجبور کرنے کے لئے، بی بی پرچم کا استعمال کریں. Expectk کا استعمال کرتے ہوئے، یہ اختیار بفر کے طور پر مقرر کیا جاتا ہے.

اگر تار "-" ایک فائل نام کے طور پر فراہم کیا جاتا ہے تو، اس کے بجائے معیاری ان پٹ پڑھا جاتا ہے. اصل میں "-" نام سے ایک فائل سے پڑھنے کے لئے "./-" استعمال کریں.

آئی اے پرچم کی وجہ سے ان سے ایک فائل سے پڑھنے کے بجائے حکموں کے لۓ بات چیت کرنے کی توقع ہے. باہر نکلنے والی کمان یا EOF پر معتبر ہونے کا خاتمہ کیا جاتا ہے. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. غلط استعمال کی اطلاع دیتے ہوئے ایرر آ گیا ہے. Expectk کا استعمال کرتے وقت، یہ اختیار غیر فعال طور پر بیان کیا جاتا ہے.

- اختیارات کے اختتام کو ختم کرنے کے لئے استعمال کیا جا سکتا ہے. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. اس ویڈیو پر غلط استعمال کی اطلاع دیتے ہوئے ایرر آ گیا ہے. براہ مہربانی دوبارہ کوشش کریں. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. اسے استعمال کیا جا سکتا # میں! امید کی طرف سے کسی بھی پرچم کی طرح تشریح کو روکنے کے لئے لائن. مثال کے طور پر، مندرجہ بالا متغیر argv میں سکرپٹ کے نام سمیت اصل دلائل چھوڑ دیں گے.

#! / امریکی / مقامی / بن / توقع -

نوٹ کریں کہ معمول کے پاسپٹ (3) اور عملدرآمد (2) کنونشنوں کو یہ ہونا چاہئے کہ جب دلائل شامل ہوں تو #! لائن.

اگر فائل $ exp_library / expect.rc موجود ہے تو خود بخود خود کار طریقے سے محفوظ ہوجائے، جب تک کہ این این پرچم استعمال نہ ہو. (Expectk کا استعمال کرتے وقت، یہ اختیار غیر NORC کے طور پر مقرر کیا جاتا ہے.) اس کے فورا بعد، فائل ~ / .expect.rc خود کار طریقے سے sourced ہے، جب تک کہ - پرچم استعمال نہیں کیا جاتا ہے. اگر ماحول متغیر DOTDIR کی وضاحت کی گئی ہے تو یہ ایک ڈائرکٹری کے طور پر علاج کیا جاتا ہے اور وہاں سے .expect.rc پڑھا جاتا ہے. Expectk کا استعمال کرتے ہوئے، یہ اختیار کے طور پر مقرر کیا جاتا ہے. یہ سوراخ کرنے والی کسی بھی سی پرچم کو انجام دینے کے بعد ہی ہوتا ہے.

-V اس کا ورژن نمبر پرنٹ کرنے اور باہر نکلنے کی توقع ہے. Expectk میں اسی پرچم، جو طویل پرچم کے نام کا استعمال کرتا ہے، ہے.

اختیاری دلائل ایک فہرست میں تعمیر اور متغیر نام argv میں ذخیرہ کیا جاتا ہے اور. آرکسی آرکوی کی لمبائی میں ابتدائی ہے.

اگر کوئی سکرپٹ استعمال نہ ہو تو Argv0 اسکرپٹ یا بائنری کا نام ہونا ہے. مثال کے طور پر، مندرجہ ذیل پرنٹ اسکرپٹ کا نام اور پہلے تین دلائلوں کا نام:

send_user "$ argv0 [$ Arg arg $ 2] \ n"

حکم

امید ہے کہ آلہ کمانڈ کی زبان. Tcl کنٹرول کنٹرول کے بہاؤ (اگر، کے لئے، توڑ)، اظہار تشخیص اور ریورسرن اور طریقہ کار کی تعریف کے طور پر کئی دیگر خصوصیات. احکامات یہاں استعمال ہوتے ہیں لیکن وضاحت نہیں کی جاتی ہیں (سیٹ، اگر، عملدرآمد) Tcl حکم ہیں. امید ہے کہ اضافی حکموں کی حمایت جب تک دوسری صورت میں مخصوص نہیں، حکمات کو خالی تار واپس.

حکمات حروف تہجی سے درج ہیں تاکہ وہ فوری طور پر واقع ہوسکیں. تاہم، نئے صارفین اس ترتیب میں سپن، بھیجنے، توقع، اور بات چیت کی تفصیل کو پڑھنے کے ذریعہ شروع کرنا آسان کرسکتے ہیں.

قریبی [-لیلے] [-ونیکسیک 0 | 1] [-i-spawn_id]

موجودہ عمل سے کنکشن کو بند کر دیتا ہے . زیادہ تر انٹرایکٹو پروگراموں کو EOF ان کے stdin پر اور باہر نکلیں گے؛ اس طرح قریبی عام طور پر عمل کو بھی قتل کرنے میں کافی ہے. اس پرچم کا اعلان نامزد spawn_id کے مطابق بند کرنے کا اعلان کرتا ہے.

جب موجودہ عمل سے نکلتا ہے اور واضح طور پر قریبی کام کرتے ہیں تو دونوں کی توقع اور بات چیت کا پتہ چل جائے گا، لیکن اگر آپ پروسیسنگ کو قتل کرتے ہیں تو کہتے ہیں کہ "$ پڈ پر عملدرآمد کریں"، آپ کو واضح طور پر بند کرنے کی ضرورت ہے .

غیر ایکسیک پرچم کو یہ تعین کرتا ہے کہ سپون آئی ڈی کسی نئی نسل کے عمل میں بند ہوجاتا ہے یا اس کے عمل کو اوور لینا ہے. اسپون آئی ڈی کو چھوڑنے کے لئے، قیمت کا استعمال کریں 0. غیر صفر انوگر قدر کسی بھی نئے عمل میں بند سپون کو قوت دیتا ہے.

سپلی شے کے ساتھ منسلک غلام غلامی پرچم بند کر دیتا ہے. جب کنکشن بند ہوجاتا ہے تو، غلام خود بخود بند ہوجاتا ہے اور اگر یہ ابھی بھی کھلا ہے.

اس بات کا کوئی فرق نہیں آیا کہ کنکشن واضح طور پر یا واضح طور پر بند کر دیا گیا ہے، آپ کو متعلقہ کنیال کے عمل کی سلاٹ کو صاف کرنے کا انتظار کرنا چاہئے. قریبی کمانڈ انتظار نہیں کرتا کیونکہ اس بات کی کوئی ضمانت نہیں ہے کہ عمل کے سلسلے کو بند کرنے سے باہر نکلنے کا سبب بن جائے گا.

ڈیبگ [[-ان] 0 | 1]

ایک Tcl ڈیبگر کو کنٹرول کرتا ہے جو آپ کو بیانات کے ذریعے قدم دینے اور بریک پوائنٹس مقرر کرنے کی اجازت دیتا ہے.

کوئی دلیل کے ساتھ، اگر debugger نہیں چل رہا ہے تو 1 واپس آ گیا ہے، دوسری صورت میں 0 واپس آ گیا ہے.

1 دلیل کے ساتھ، ڈیبگر شروع ہوتا ہے. 0 دلیل کے ساتھ، ڈیبگر بند کر دیا گیا ہے. اگر 1 مباحثہ الارم پرچم کی طرف سے پہلے ہے، تو ڈیبگر فوری طور پر شروع ہوتا ہے. دوسری صورت میں، ڈیبگر اگلے Tcl بیان کے ساتھ شروع کیا جاتا ہے.

ڈیبگ حکم کسی بھی نیٹ ورک کو تبدیل نہیں کرتا ہے. اس کے مقابلے میں ڈی ڈی پرچم کے ساتھ متوقع شروع کرنے کا موازنہ کریں.

منقطع کمانڈ ٹرمینل سے ایک فوریکڈ عمل کو منسلک کرتا ہے . یہ پس منظر میں چل رہا ہے. اس عمل کو اپنا عمل گروہ دیا جاتا ہے. سٹینڈرڈ I / O کو / dev / null پر ری ڈائریکٹ کیا جاتا ہے.

اسکرپٹ کو پس منظر میں جاری رکھنے کیلئے مندرجہ ذیل ٹکڑے کو منقطع کا استعمال کرتا ہے.

اگر {[فورک]! = 0} باہر نکلیں منقطع. . .

مندرجہ ذیل اسکرپٹ کو ایک پاس ورڈ پڑھتا ہے اور پھر ہر گھنٹہ کو ایک پروگرام چلا جاتا ہے جو ہر بار چلتا ہے ہر ایک پاسورڈ کا مطالبہ کرتا ہے. اسکرپٹ کو پاسورڈ فراہم کرتا ہے لہذا آپ کو صرف ایک بار اسے ٹائپ کرنا ہوگا.

send_user "پاس ورڈ؟ \" expect_user -re "(. *) \ n" کے لئے {} 1 {} {اگر {[کانک]! = 0} {نیند 3600؛ جاری} منقطع سپاون priv_prog کی توقع کریں پاس ورڈ: "$ expect_out بھیجیں" 1، تار) \ r ". . . باہر نکلیں }

شیل ایسونکرونس پروسیسنگ خصوصیت (&) پر منقطع کا استعمال کرنے کا فائدہ یہ ہے کہ امید ہے کہ اس سے قبل ٹرمینل کے پیرامیٹرز کو منقطع سے بچا جا سکتا ہے اور پھر بعد میں انہیں ان کی نئی ptys میں لاگو کیا جا سکتا ہے. کے ساتھ، توقع ٹرمینل کے پیرامیٹرز کو پڑھنے کا موقع نہیں ہے کیونکہ ٹرمینل پہلے سے ہی وقت کی توقع کی توقع سے منقطع ہے.

باہر نکلیں [-پٹس] [حیثیت]

باہر نکلنے یا دوسری صورت میں ایسا کرنے کے لئے تیار کرنے کی توقع کی وجہ سے.

آؤٹ لکٹ پرچم کا سبب بنتا ہے کہ اگلے دلیل سے باہر نکلنے کے لئے ہٹانے والے ہینڈلر کے طور پر استعمال کیا جاسکتا ہے. ایک دلیل کے بغیر، موجودہ باہر نکلنے والے ہینڈلر واپس آ گیا ہے.

نکلوٹ پرچم کی وجہ سے باہر نکلنے کے لئے تیار لیکن آپریٹنگ سسٹم میں اصل میں واپس آنے سے کم کرنے کے لئے تیار کرنے کی توقع ہے. صارف کی وضاحت سے باہر نکلنے والے ہینڈلر بھی ساتھ ساتھ اپنے اندرونی ہینڈلر چل رہا ہے. اس کے علاوہ کوئی بھی حکم کی توقع نہیں کی جاسکتی ہے. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. غلط استعمال کی اطلاع دیتے ہوئے ایرر آ گیا ہے. موجودہ مترجم (اور اہم ونڈو اگر Tk ماحول میں) رہتا ہے تو دوسرے Tcl کی توسیع صاف ہوسکتی ہے. اگر امید سے نکلنے کے بعد دوبارہ کہا جاتا ہے (تاہم یہ ممکن ہوسکتا ہے)، ہینڈلر ریون نہیں ہیں.

باہر نکلنے کے بعد، پیدا شدہ عملوں کے تمام کنکشن بند ہیں. فارغ عملوں کی طرف سے EOF کے طور پر بند ہو جائے گا. باہر نکلنے سے کوئی دوسرا کام نہیں کرتا جو عام _exit (2) طریقہ کار کرتا ہے. اس طرح، ایوا کے لئے چیک نہیں کئے جانے والے عملوں کو چلایا جا سکتا ہے. (مثال کے طور پر تعین کرنے کے لئے مختلف قسم کے شرائط اہم ہیں، مثال کے طور پر، جس میں ایک پیچیدہ عمل بھیجا جاسکتا ہے، لیکن یہ نظام پر منحصر ہے، عام طور پر باہر نکلنے کے تحت (3).

حیثیت (یا 0 اگر بیان نہیں کیا گیا ہے) توقع کی عدم منظوری کے طور پر واپس آ گیا ہے. باہر نکلنے کا مطلب یہ ہے کہ اگر سکرپٹ کے اختتام تک پہنچ جائے تو اس سے باہر نکلنا پڑا ہے.

exp_continue [-continue_timer]
کمانڈ exp_continue خود کو امید ہے کہ عام طور پر کرے گا کے طور پر واپس آنے کے بجائے عملدرآمد جاری رکھنے کی اجازت دیتا ہے . ڈیفالٹ کے ذریعے exp_continue ٹائم آؤٹ ٹائمر کو ری سیٹ کرتا ہے. Thecontinue_timer پرچم دوبارہ شروع ہونے سے ٹائمر کو روکتا ہے. (مزید معلومات کے لئے توقع دیکھیں.)

exp_internal [ایف فائل] قیمت
اگر قدر غیر صفر ہے تو اسٹڈر کی توقع کرنے کے لئے تشخیصی معلومات داخلی بھیجنے کے لئے مزید حکم دیتا ہے. اگر یہ قیمت 1 ہے تو یہ پیداوار معذور ہے. تشخیصی معلومات میں ہر کردار موصول ہوئی ہے، اور ہر ایک کوشش پیٹرن کے خلاف موجودہ پیداوار سے ملنے کے لئے بنایا گیا ہے.

اگر اختیاری فائل فراہم کی جاتی ہے تو، تمام عام اور ڈیبگنگ آؤٹ پٹ اس فائل میں لکھا جاتا ہے (قطع نظر کی قدر کے مطابق ). کسی بھی سابق تشخیصی آؤٹ پٹ فائل بند ہے.

آئوفا پرچم کا سبب بنتا ہے کہ دیئے جانے والے سب سے زیادہ غیر معلومات والے دلائلوں کی وضاحت واپس آنا ہے.

exp_open [args] [-i-spawn_id]
ایک Tcl فائل شناختی والا واپسی دیتا ہے جو اصل سپن آئی ڈی سے ملتا ہے. فائل شناخت کنندہ اس کے بعد استعمال کیا جاسکتا ہے کہ یہ ٹی سی ایل کے کھلے کمانڈ کی طرف سے کھول دیا گیا تھا. (اسپونا آئی ڈی اب استعمال نہیں کیا جانا چاہئے. انتظار کا عملدرآمد نہیں ہونا چاہئے.

بلیوپن پرچم کو متوقع کمانڈر کے ذریعہ رسائی کے لئے اسپون آئی ڈی کھلایا جاتا ہے. ایک انتظار اسپونا آئی ڈی پر پھانسی دی جائے گی.

exp_pid [-i spawn_id]
موجودہ فی عمل عمل کے مطابق عمل کی شناخت کرتا ہے. اگر اس پرچم کا استعمال کیا جاتا ہے تو، پیڈ واپس سپنج آئی ڈی کے مطابق آتا ہے.

exp_send
بھیجنے کے لئے ایک عرف ہے.

exp_send_error
send_error کے لئے ایک عرف ہے.

exp_send_log
send_log کے لئے ایک عرف ہے.

exp_send_tty
send_tty کے لئے ایک عرف ہے.

exp_send_user
send_user کے لئے ایک عرف ہے.

exp_version [[exit] ورژن]
اس بات کا یقین کرنے کے لئے مفید ہے کہ اسکرپٹ اس امید کے موجودہ ورژن سے مطابقت رکھتا ہے.

کوئی دلیل کے ساتھ، امید کا موجودہ ورژن واپس آ گیا ہے. اس ورژن کو آپ کی سکرپٹ میں انکوڈ کیا جا سکتا ہے. اگر آپ اصل میں جانتے ہیں کہ آپ حالیہ ورژن کی خصوصیات استعمال نہیں کررہے ہیں، تو آپ پہلے سے پہلے ورژن کی وضاحت کرسکتے ہیں.

ورژن تین نقاطوں پر مشتمل ہوتے ہیں. سب سے پہلے اہم نمبر ہے. ایک مختلف اہم نمبر کے ساتھ توقع کے ورژن کے لئے لکھا سکرپٹ تقریبا یقینی طور پر کام نہیں کریں گے. اگر بڑی تعداد میں مماثلت نہیں ہوتی تو Exp_version ایک غلطی کی واپسی دیتا ہے.

دوسرا معمولی نمبر ہے. موجودہ ورژن کے مقابلے میں زیادہ نجی تعداد کے ساتھ ایک ورژن کے لئے لکھا سکرپٹ کچھ نئی خصوصیت پر منحصر ہوسکتی ہے اور نہیں چل سکتی. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. اس ویڈیو پر غلط استعمال کی اطلاع دیتے ہوئے ایرر آ گیا ہے. براہ مہربانی دوبارہ کوشش کریں. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. غلط استعمال کی اطلاع دیتے ہوئے ایرر آ گیا ہے.

تیسری ایسی تعداد ہے جو نسبتا نسبتا مقابلے میں حصہ نہیں لیتا ہے. تاہم، یہ توسیع کی جاتی ہے جب کسی بھی طرح کی توقع سافٹ ویئر کی تقسیم تبدیل ہوجائے گی، جیسے اضافی دستاویزات یا اصلاح. یہ ہر نئے نابالغ ورژن پر 0 پر ری سیٹ ہے.

غیرقانونی پرچم کے ساتھ، توقع ہے کہ ایک غلطی پرنٹ کریں اور اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں.

[[پوپ] پیٹی 1 جسم 1 کی توقع ہے ... [-پٹس] پٹا [بڈن]
انتظار کرتا ہے جب تک کہ کسی پیٹرن میں کسی عمل کی پیداوار سے نمٹنے سے کوئی تعلق نہ ہو، ایک مخصوص وقت کی مدت منظور ہو، یا اختتام کی فائل دیکھی جائے. اگر حتمی جسم خالی ہے تو اسے ختم کر دیا جا سکتا ہے.

سب سے زیادہ حالیہ امید سے پیٹرن پہلے حکم کسی بھی دوسرے پیٹرن سے پہلے استعمال کیا جاتا ہے. سب سے حالیہ expect_after کمانڈ سے پیٹرن کسی بھی دوسرے پیٹرن کے بعد سے استعمال کیا جاتا ہے.

اگر پورے توقع کے بیان کے دلائل ایک سے زائد لائن کی ضرورت ہوتی ہے تو، تمام دلائل ایک "بیکار" ہوسکتی ہیں تاکہ بیک لائن کے ساتھ ہر لائن کو ختم کرنے سے بچنے کے لۓ. اس معاملے میں، بہادروں کے باوجود عام طور پر Tcl متبادلات ہوسکتے ہیں.

اگر ایک پیٹرن مطلوبہ الفاظ کے مطابق ہے ، تو اس کے جسم کو ختم ہونے والی فائل پر عملدرآمد کیا جاتا ہے. اگر پیٹرن مطلوبہ الفاظ کا وقت ہے تو، اسی جسم کو وقت کے وقت پر عملدرآمد کیا جاتا ہے. اگر کوئی ٹائم آؤٹ مطلوبہ الفاظ استعمال نہیں کیا جاتا ہے تو، ٹائم آؤٹ پر ایک غیر معمولی نفاذ کو عملدرآمد کیا جاتا ہے. ڈیفالٹ ٹائم آؤٹ کی مدت 10 سیکنڈ ہے لیکن سیٹ کی جا سکتی ہے، مثال کے طور پر 30، کمانڈ "سیٹ ٹائم آؤٹ 30" کی طرف سے. ایک لامحدود ٹائم آؤٹ نام قیمت -1 کی طرف سے نامزد کیا جا سکتا ہے. اگر ایک پیٹرن مطلوبہ الفاظ سے پہلے ڈیفالٹ ہے ، تو اس کے جسم کو کسی بھی وقت یا آؤٹ ہونے والے فائل پر عملدرآمد کیا جاتا ہے.

اگر ایک پیٹرن مماثلت ہے، تو اسی جسم کو معطل کیا جاتا ہے. جسم کے نتیجے میں واپسی کی توقع ہوتی ہے (یا کوئی پیٹرن ملا نہیں ہے تو خالی تار). اس واقعہ میں جس سے متعدد نمونوں سے ملتا ہے، سب سے پہلے ظاہر ہونے والے ایک جسم کو منتخب کرنے کے لئے استعمال کیا جاتا ہے.

ہر بار نئی پیداوار آتی ہے، اس کے مطابق ان میں ہر پیٹرن کے مقابلے میں درج ہے. اس طرح، آپ کو ایک آخری میچ کے ذریعے کسی میچ کی غیر موجودگی کی جانچ پڑتال کی جا سکتی ہے جیسے کسی بات کی ضمانت دی گئی ہے، جیسے فوری طور پر. حالات میں جہاں کوئی فوری طور پر نہیں ہے، آپ کو ٹائم آؤٹ کا استعمال کرنا چاہیے (جیسے ہی آپ چاہیں گے کہ آپ دستی طور پر بات چیت کر رہے ہیں).

پیٹرن تین طریقوں میں بیان کی جاتی ہیں. ڈیفالٹ کی طرف سے، پیٹرن کے طور پر مقرر کیا جاتا ہے کے طور پر Tcl کی سٹرنگ میچ حکم. (اس طرح کے پیٹرن C-shell باقاعدگی سے اظہار عام طور پر عام طور پر "عالمی" پیٹرن کے طور پر کہا جاتا ہے کی طرح بھی ہیں). انگلیوں کے پرچم کو پیٹرن کی حفاظت کے لئے استعمال کیا جا سکتا ہے جو ایسا کرنے سے توقعات کی جھلکیاں مل سکے. "-" کے ساتھ شروع ہونے والے کسی بھی پیٹرن کو اس طرح سے محفوظ کیا جانا چاہئے. (مستقبل کے اختیارات کے لئے شروع ہونے والے تمام تار "-" محفوظ ہیں.)

مثال کے طور پر، مندرجہ ذیل ٹکڑے ٹکڑے ایک کامیاب لاگ ان کے لئے لگ رہا ہے. (نوٹ لکھیں کہ اسکرپٹ میں دوسری جگہ کی وضاحت کی گئی ایک طریقہ کار کا خاتمہ کیا جائے گا.)

متوقع {مصروف {مصروف مصروف \ n؛ exp_continue} ناکام ہوگیا "غلط پاسورڈ" abort ٹائم آؤٹ abort منسلک}

چوتھا پیٹرن پر کوٹس ضروری ہے کیونکہ اس میں ایک جگہ ہے، جس سے دوسری صورت میں اس طرز عمل سے نمونے کو الگ کردیں گے. اسی کارروائی کے ساتھ پیٹرن (جیسے تیسری اور تیسری) کی ضرورت ہوتی ہے دوبارہ دوبارہ کارروائی کریں. رجسٹرڈ طرز پیٹرن (ذیل میں ملاحظہ کریں) کا استعمال کرتے ہوئے اس سے بچنے سے بچا جا سکتا ہے. عالمی سٹائل کے پیٹرن بنانے پر مزید معلومات Tcl دستی میں پایا جا سکتا ہے.

ریگولیٹ طرز طرز کے مطابق Tcl کے رجexp (مختصر "باقاعدگی سے اظہار" کے لئے مختصر) کی طرف سے وضاحت نحوط کی پیروی کریں. رجسٹرڈ نمونہ پرچم کے ساتھ متعارف کرایا جاتا ہے . پچھلے مثال کے طور پر ریگولیٹ کا استعمال کرتے ہوئے دوبارہ لکھا جا سکتا ہے:

متوقع {مصروف {مصروف مصروف \ n؛ exp_continue} - "ناکامی | غلط پاس ورڈ" abort ٹائم آؤٹ abort منسلک}

دونوں قسم کے پیٹرن "بے چینی" ہیں. اس کا مطلب یہ ہے کہ پیٹرن کو مکمل سٹرنگ سے ملنے کی ضرورت نہیں ہے، لیکن سٹرنگ میں کہیں بھی میچ شروع ہوسکتے ہیں اور (جب تک کہ سب کچھ ملتا ہے) ختم ہوسکتا ہے. استعمال کریں ^ ایک تار کے آغاز سے ملنے کے لئے، اور $ اختتام سے ملنے کے لئے. نوٹ کریں کہ اگر آپ ایک تار کے اختتام تک انتظار نہیں کرتے ہیں تو، آپ کے جوابات آسانی سے سٹرنگ کے وسط میں ختم ہوسکتے ہیں کیونکہ وہ اس طرح کے عمل سے گزر رہے ہیں. جبکہ ابھی بھی درست نتائج پیدا ہوتے ہیں تو، پیداوار ناقابل نظر نظر آسکتا ہے. اس طرح، $ کا استعمال حوصلہ افزائی کی جاتی ہے اگر آپ ایک تار کے اختتام پر حروف کی وضاحت کر سکتے ہیں.

نوٹ کریں کہ بہت سے ایڈیٹرز میں، ^ اور $ ترتیب بالترتیب ترتیبات کے آغاز اور اختتام پر. تاہم، کیونکہ توقع لائن پر مبنی نہیں ہے، یہ حروف موجودہ اعداد و شمار کے آغاز اور اختتام (فی الحال لائنوں کے مخالف ہیں) توقع کی مماثلت کے بفر میں. (اس کے علاوہ "نظام اندراج" ذیل میں نوٹ ملاحظہ کریں.)

غیر ملکی پرچم کا سبب بنتا ہے کہ پیٹرن "عین مطابق" تار کے طور پر مل جائے. *، ^ وغیرہ کی کوئی تشریح نہیں کی جاتی ہے (اگرچہ عام طور پر Tcl کنونشنوں کو بھی دیکھا جانا چاہیے). غیر معمولی نمونہ ہمیشہ اجنبی ہیں.

توجہ پرچم کا سبب بنتا ہے کہ پیداوار کا زیادہ سے زیادہ حروف کا موازنہ کرنے کے لۓ اگرچہ وہ کم حروف کے تھے. پیٹرن متاثر نہیں ہے.

پیداوار پڑھنے کے دوران 2000 سے زائد بائٹس پہلے بائٹ کو "بھول گئے" پر مجبور کرسکتے ہیں. یہ فنکشن match_max کے ساتھ تبدیل کیا جا سکتا ہے. (یاد رکھیں کہ زیادہ سے زیادہ بڑے اقدار پیٹرن ملکر کو کم کرسکتے ہیں.) اگر پیسٹ لسٹ مکمل_بفر ہے تو، متعلقہ جسم کو معطل کر دیا جاتا ہے اگر میچ میل ایکس بائیٹس موصول ہوئی ہیں اور کوئی دوسرے پیٹرن کو ملا نہیں ہے. Full_buffer مطلوبہ الفاظ کا استعمال کیا جاتا ہے یا نہیں کیا جاتا ہے، وسائل حروف متوقع (بفر) کے لئے لکھا جاتا ہے.

اگر پیسٹ لسٹ مطلوبہ الفاظ کو ٹھیک ہے ، اور نوز کو اجازت دی جاتی ہے ( remove_nulls command کے ذریعہ)، اسی جسم کو عملدرآمد کیا جاتا ہے تو ایک ASCII 0 ملا ہے. 0 بائٹس سے ملنے کے لئے یہ ممکن نہیں ہے کہ عالمی یا رجسٹرڈ پیٹرن کے ذریعے.

متغیر پیٹرن (یا eof یا full_buffer) پر، متغیر expect_out (بفر) میں کسی بھی مماثلت اور پہلے بے مثال پیداوار کو محفوظ کیا جاتا ہے. 9 regexp سبٹرنگ میچز تک متغیرات (1، تار) توقع_out (9، سٹرنگ) کے ذریعے متغیر میں محفوظ ہیں. اگر طرزعمل کا پرچم ایک پیٹرن سے پہلے استعمال کیا جاتا ہے، 10 تاروں کے شروع اور اختتامی اشارے ( لینجین کے لئے موزوں فارم میں) متغیرات (X، شروع) اور expect_out (ایکس، اختتام) میں محفوظ ہیں جہاں X ہے اعداد و شمار، بفر میں سبسٹرنگ پوزیشن سے متعلق ہے. 0 اس سلسلے سے مراد ہے جو پورے پیٹرن سے مل کر ہے اور عالمی سطح پر پیٹرن کے ساتھ ساتھ رجسٹرڈ پیٹرن کے لئے پیدا ہوتا ہے. مثال کے طور پر، اگر ایک عمل نے "abcdefgh \ n" کی پیداوار پیدا کی ہے، اس کا نتیجہ:

"سی ڈی" کی توقع

جیسا کہ مندرجہ بالا بیانات مرتب کیے گئے ہیں:

set_out مقرر کریں (0، تار) سی ڈی سیٹ expect_out (بفر) abcd

اور "efgh \ n" آؤٹ پٹ بفر میں باقی ہے. اگر ایک پروسیسنگ پیداوار "abbbcabkkkka \ n" پیدا، تو اس کا نتیجہ:

توقع ہے -اسلامی "ب (ب *). * (k +)"

جیسا کہ مندرجہ بالا بیانات مرتب کیے گئے ہیں:

(0، شروع) 1 سیٹ expect_out مقرر (0، آخر) 10 سیٹ expect_out مقرر (0، تار) bbbcabkkkk سیٹ expect_out (1، شروع) 2 سیٹ expect_out (1، آخر) 3 سیٹ expect_out (1، تار) بی بی سیٹ expect_out مقرر (2، شروع) 10 سیٹ expect_out (2، آخر) 10 سیٹ expect_out (2، تار) k سیٹ expect_out (بفر) abbbcabkkkk

اور "ایک \ n" آؤٹ پٹ بفر میں باقی ہے. پیٹرن "*" (اور -re ". *") پیداوار کے بفر کو عمل سے کسی اور پیداوار کو پڑھنے کے بغیر بہاؤ گا.

عموما، مماثلت کی پیداوار متوقع اندرونی بفروں سے مسترد کردی گئی ہے. یہ نیٹ ورک ٹرانسمیشن پرچم کے ساتھ ایک پیٹرن پیش کرنے کی طرف سے روک دیا جا سکتا ہے. یہ پرچم خاص طور پر استعمال میں مفید ہے (اور سہولت کے دوران "اور" سہولت کے لئے مختصر نہیں کیا جا سکتا ہے).

مماثل پیداوار (یا ایوف یا مکمل_بفر) سے منسلک اسپون آئی ڈی expect_out (spawn_id) میں ذخیرہ کیا جاتا ہے.

ٹائم آؤٹ پرچم کی موجودہ امید کمانڈ کا سبب بنتا ہے کہ اس وقت کی قیمت کو استعمال کرنے کے بجائے ٹائم آؤٹ کے طور پر درج ذیل قیمت کو استعمال کرنے کے قابل ہو.

پہلے سے طے شدہ طور پر، پیٹرن موجودہ پروسیسنگ سے پیداوار کے خلاف مماثل ہیں، تاہم اس پرچم کا نام نامہ سپاونڈ لسٹ سے آؤٹ پٹ کا اعلان کسی بھی مندرجہ ذیل نمونوں کے خلاف ملتا ہے (اگلے -i تک ). spawn_id کی فہرست یا تو سپونائیڈس کی سفید وائڈ کی فہرست یا سپونویڈ کے اس طرح کی ایک فہرست کی متغیر متغیر فہرست ہونا چاہئے.

مثال کے طور پر، مندرجہ ذیل مثال موجودہ پروسیسنگ سے منسلک ہے، یا "مصروف"، "ناکام" یا "غلط پاس ورڈ" spawn_id سے $ proc2 کی طرف سے نامزد کیا جاتا ہے.

{-i $ proc2 مصروف {مصروف رکھتا ہے \ n؛ exp_continue} - "ناکامی | غلط پاس ورڈ" abort ٹائم آؤٹ abort منسلک}

عالمی متغیر کی قدر کسی بھی_ اسپاون_ڈ کا استعمال کسی بھی سپونڈ ایڈ پر پیٹرن سے ملنے کے لئے استعمال کیا جا سکتا ہے جو موجودہ متوقع کمانڈر کے تمام دیگر شعبوں کے ساتھ نامزد کیا جاتا ہے. A -I پرچم سے spawn_id کوئی منسلک پیٹرن کے ساتھ (یعنی، دوسری طرف سے فورا بعد بھی) کسی بھی توقع کمانڈ میں کسی بھی دوسرے پیٹرن کے لئے دستیاب ہے کسی بھی_سپاون_ڈ سے منسلک ہے .

اس پرچم کو بھی عالمی متغیر نامزد کیا جا سکتا ہے جس میں کیس سپون ایسڈ کی فہرست کے لئے متغیر پڑھا جاتا ہے. جب بھی اس میں تبدیلی ہوتی ہے متغیر ہوتی ہے. یہ I / O ذریعہ کو تبدیل کرنے کا ایک طریقہ فراہم کرتا ہے جبکہ کمانڈ پر عملدرآمد ہے. سپون ایسڈ فراہم کیے گئے ہیں اس طریقے سے "غیر مستقیم" سپون ایسڈ کہا جاتا ہے.

وقفے جیسے وقفے اور جاری رکھنے کے لئے کنٹرول ڈھانچے کا سبب بنتا ہے (یعنی، کے لئے ، پرو ) معمول کے راستے پر عمل کرنے کے لئے. کمانڈ exp_continue خود کو امید ہے کہ عام طور پر کرے گا کے طور پر واپس آنے کے بجائے عملدرآمد جاری رکھنے کی اجازت دیتا ہے .

واضح طور پر اس سے بچنے کے لۓ یا توقع کے بیانات کو بار بار روکنے کے لئے یہ مفید ہے. ریلینٹ کو خودکار کرنے کے لئے مندرجہ ذیل مثال کے ٹکڑے کا حصہ ہے. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. غلط استعمال رپورٹ نہیں کیا جا سکا. ایک یا زیادہ ایرر آ گئے ہیں. براہ مہربانی ایرر پیغام سے نشان زدہ فیلڈز کو ٹھیک کریں. وہ معلومات لازمی ہیں جن کے ساتھ * کی علامت ہے.

امید ہے کہ $ میزبان {{stty -chocho send_user} پاس ورڈ ($ صارف کیلئے) $ میزبان: "expect_user -re" (. *) \ n "send_user" \ n "بھیجیں" $ expect_out (1، string) \ r "stty گونج ختم کرنے کے لئے \ n "باہر نکلیں} eof {send_user \" ایونٹ کو ناکام ہوگیا: $ expect_out (buffer) "سے باہر نکلیں" - باہر نکلنا {send_user "غلط پاس ورڈ یا اکاؤنٹ \ n" باہر نکلیں} دوبارہ $ فوری)

مثال کے طور پر، مندرجہ ذیل ٹکڑے ٹکڑے کسی ایسے صارف کی رہنمائی میں مدد کرسکتے ہیں جو پہلے سے ہی مکمل طور پر خود کار طریقے سے خود کار طریقے سے ہو. اس صورت میں، ٹرمینل خام موڈ میں ڈال دیا جاتا ہے. اگر صارف "+" پر زور دیتا ہے، تو متغیر بڑھ جاتی ہے. اگر "پی" پر زور دیا جاتا ہے تو، کئی راستوں کو اس عمل کو بھیجا جاتا ہے، شاید کسی طرح سے اسے ضائع کرنے کے لئے، اور "میں" صارف اس عمل سے بات چیت کرسکتا ہے، جس سے سکرپٹ سے مؤثر طریقے سے کنٹرول چوری ہو. ہر صورت میں، exp_continue موجودہ کارروائی کو انجام دینے کے بعد موجودہ پیٹرن ملاپ کو جاری رکھنے کی اجازت دیتا ہے.

stty خام متوقع expect_after {-i $ user_spawn_id "p" {send "\ r \ r \ r"؛ exp_continue} "+" {incr foo؛ exp_continue} "i" {interact؛ exp_continue} "چھوڑیں" سے باہر نکلیں}

ڈیفالٹ کے مطابق، exp_continue ٹائم آؤٹ ٹائمر کو ری سیٹ کرتا ہے. ٹائمر کو دوبارہ شروع نہیں کیا جاسکتا ہے، اگر exp_ue_timer پرچم کے ساتھ exp_continue کہا جاتا ہے.

expect_after [expect_args]
امید ہے کہ امید ہے کہ توقع اور expect_after سے نمونہ مل سکتے ہیں، توقع کی پیٹرن استعمال کی جاتی ہے. ہیلپ ڈیسک جلد از جلد اس معاملے کو دیکھے گا.

expect_background [expect_args]
اسی دلائل کو امید کے طور پر لیتا ہے، لیکن یہ فوری طور پر واپس آتا ہے. نئے ان پٹ پہنچنے پر پیٹرن آزمائے جاتے ہیں. پیٹرن ٹائم آؤٹ اور ڈیفالٹ توقع کے لئے بیکار ہیں بیک بیک منظر اور خاموش طور پر رد کر دیا ہے. ورنہ، امید_ بیکارڈر کمانڈ توقع اور پہلے توقع کرتا ہے توقع کرتا ہے جیسے پیٹرن توقع کرتا ہے.

توقع کرتے ہیں جب بیک منظر کے عوامل کا اندازہ کیا جا رہا ہے، اسی سپاون آئی ڈی کے پس منظر کی پروسیسنگ کو روک دیا گیا ہے. کارروائی مکمل ہونے کے بعد پس منظر کی پروسیسنگ غیر مسدود ہوگئی ہے. پس منظر کی پروسیسنگ کو روک دیا گیا ہے، جبکہ اسی سپاون کی شناخت (پیش منظر) کی توقع ہے.

امید ہے کہ توقع کی توثیق کرنے کے لئے یہ ممکن نہیں ہے جبکہ امید کا بیک منظر غیر منحصر ہے. ایک خاص اسپونا آئی ڈی کے لئے expect_background ایک ہی سپاون آئی ڈی کے ساتھ نئے توقع کا بیک منظر کا اعلان کرکے خارج کردیا گیا ہے. کسی بھی پیٹرن کے ساتھ expect_background کا اعلان کرنے کے پس منظر میں پیٹرن سے نمٹنے کی صلاحیت سے دیئے گئے اسپون آئی ڈی کو ہٹاتا ہے.

expect_before [expect_args]
اسی دلائل کو امید کے طور پر لیتا ہے، لیکن یہ فوری طور پر واپس آتا ہے. سب سے زیادہ حالیہ امید سے پیٹرن کارروائی کے جوڑے اسی سپاون آئی ڈی کے ساتھ کسی بھی مندرجہ بالا امید کے حکم میں شامل ہیں. اگر ایک پیٹرن مماثلت ہے تو یہ علاج کیا جاسکتا ہے کہ توقع کی کمانڈ میں اس کی وضاحت کی گئی ہے، اور منسلک جسم متوقع کمانڈ کے تناظر میں مرتب کیا جاتا ہے. اگر توقع سے پہلے اور توقع سے نمونہ مل سکتے ہیں، تو پیٹرن کا استعمال کیا جاتا ہے.

اگر کوئی پیٹرن وضاحت نہیں کی جاتی ہے تو سپون آئی ڈی کسی بھی پیٹرن کے لئے چیک نہیں کیا جاتا ہے.

جب تک کسی بھی پرچم کی طرف سے سرکار نہیں ہوسکتا ہے ، توقع ہے کہ پیٹرن اس وقت مقرر کردہ سپون آئی ڈی کے خلاف ملیں جب حکم پہلے سے ہی انجام دیا گیا تھا (جب اس کا پیٹ مل گیا ہے).

آئوفا پرچم کا توقع ہے کہ اس سے نمٹنے کے موجودہ نردجیکرن کی واپسی کی وجہ سے امید ہے. ڈیفالٹ کی طرف سے، یہ موجودہ سپون آئی ڈی پر رپورٹ کرتا ہے. ایک اختیاری سپون آئی ڈی کی وضاحت اس سپاون آئی ڈی پر معلومات کے لئے دیا جاسکتا ہے. مثال کے طور پر

expect_before -info-i $ proc

زیادہ سے زیادہ ایک سپن آئی ڈی کی تفصیلات دی جاسکتی ہے. پرچم سے رہائشی براہ راست سپونڈز کو روکتا ہے جو صرف غیر مستقیم وضاحتوں سے آتی ہے.

اسپون آئی ڈی کی تفصیلات کے بجائے، پرچم "-ال" کو "اسپین" کے ذریعہ تمام سپون ایڈیشنز کی رپورٹ دی جائے گی.

توقع کرنے کے لئے دلیل کے طور پر آئو فون پرچم کی پیداوار کو دوبارہ استعمال کیا جاسکتا ہے.

expect_tty [expect_args]
امید کی طرح ہے لیکن یہ حروف / dev / tty (یعنی صارف سے کیسٹروک) سے پڑھتا ہے. ڈیفالٹ کی طرف سے، پکا ہوا موڈ میں پڑھنے کا کام کیا جاتا ہے. اس طرح، لائنوں کو ان کی دیکھ بھال کرنے کے لئے واپسی کے ساتھ ختم ہونا ضروری ہے. یہ سٹی کے ذریعہ تبدیل ہوسکتا ہے (ذیل میں اسٹٹی کمانڈ دیکھیں).

expect_user [expect_args]
امید کی طرح ہے لیکن یہ حروف stdin سے (یعنی صارف کی طرف سے کیسٹروک) سے پڑھتا ہے. ڈیفالٹ کی طرف سے، پکا ہوا موڈ میں پڑھنے کا کام کیا جاتا ہے. اس طرح، لائنوں کو ان کی دیکھ بھال کرنے کے لئے واپسی کے ساتھ ختم ہونا ضروری ہے. یہ سٹی کے ذریعہ تبدیل ہوسکتا ہے (ذیل میں اسٹٹی کمانڈ دیکھیں).

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

نکالنے والے کمانڈر کی طرف سے نکالنے والی کارروائییں، صرف اصل عمل کی طرح نکلتی ہیں. فورکڈ عمل لاگ ان فائلوں میں لکھنے کی اجازت دی جاتی ہے. اگر آپ زیادہ سے زیادہ عمل میں ڈیبگنگ یا لاگ ان کو غیر فعال نہیں کرتے ہیں، تو نتیجہ برداشت کر سکتا ہے.

کچھ پیٹی پر عمل درآمد متعدد قارئین اور مصنفین کی طرف سے الجھن بھی ہوسکتی ہے. اس طرح، spawning کے عمل سے پہلے یہ سب سے محفوظ ہے.

بات چیت [تار 1 جسم 1] ... [stringn [bodyn]]
صارف کو موجودہ عمل کا کنٹرول دیتا ہے، تاکہ موجودہ پروسیسنگ میں کیسٹروک بھیجا جاۓ، اور موجودہ عمل کے اسٹاک آؤٹ اور اسٹڈر واپس آ جائیں.

سٹرنگ جسم جوڑوں کو دلائل کے طور پر متعین کیا جاسکتا ہے، جس میں جسم کو اسی تار میں داخل کیا جاسکتا ہے. (ڈیفالٹ کی طرف سے، اسٹرنگ کو موجودہ عمل میں نہیں بھیج دیا گیا ہے .) اگر ترجمان کا کمانڈر فرض کیا جاتا ہے تو حتمی جسم غائب ہو.

اگر پوری بات چیت کے بیان کے دلائل ایک سے زائد لائن کی ضرورت ہوتی ہے تو، تمام دلائل ایک "بیکار" ہوسکتی ہیں تاکہ بیک لائن کے ساتھ ہر لائن کو ختم کرنے سے بچنے کے لۓ. اس معاملے میں، بہادروں کے باوجود عام طور پر Tcl متبادلات ہوسکتے ہیں.

مثال کے طور پر، مندرجہ بالا مندرجہ بالا مندرجہ ذیل تارکین وطن کے جوڑوں کے ساتھ بات چیت چلتا ہے: جب ^ Z پر زور دیا جاتا ہے، توقع کی جاتی ہے معطل. ( ریزرو پرچم ٹرمینل طریقوں کو بحال کرتا ہے.) جب ^ اے پر زور دیا جاتا ہے تو، صارف دیکھتا ہے "آپ نے ایک کنٹرول-ٹائپ ٹائپ کیا ہے" اور عمل ایک ^ A. جب $ دبائیں تو، صارف کو تاریخ دیکھتا ہے. جب ^ سی پر زور دیا جاتا ہے، توقع کی جاتی ہے. اگر "foo" داخل ہو جاتا ہے تو، صارف "بار" دیکھتا ہے. جب دبایا جاتا ہے، توقع کے مترجم میں مداخلت سے چلتا ہے.

CTRLZ \ 032 کو متعین کریں {-reset $ CTRLZ {exec exec - -stop [pid]} \ 001 {send_user "نے آپ کو کنٹرول-ایک ٹائپ کیا \ n"؛ "\ 001"} $ {send_user "بھیجیں" تاریخ [گھڑی کی شکل [گھڑی سیکنڈ]]. "} \ 003 سے باہر نکلیں {send_user" bar "}}}

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

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

ریگولی طرز طرز پیٹرن کے طور پر تشریح کی جانے والی تار کی طرف سے پرچم کو مضبوط کرتا ہے. اس صورت میں، متغیر interact_out میں مماثل ذائقہ ذخیرہ کر رہے ہیں اسی طرح کے راستے کو اسٹورز کو متغیر expect_out میں اس کی پیداوار کی امید ہے . یاد رکھنا پرچم اسی طرح کی حمایت کرتا ہے.

پیٹرن ایف ایک ایسی کارروائی متعارف کردی ہے جو اختتامی فائل پر پھانسی دی جاتی ہے. ایک الگ الگ نمونہ بھی آؤٹ پٹ پرچم کی پیروی کر سکتا ہے جس میں اگر یہ ایرر برقرار رہے تو یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. پہلے سے طے شدہ ایونٹ کارروائی "واپسی" ہے، تاکہ آسانی سے کسی بھی EOF پر بات چیت کریں .

پیٹرن ٹائم آؤٹ نے ایک ٹائم آؤٹ (سیکنڈ میں) متعارف کرایا ہے اور ایک ایسے وقت کے بعد کوئی کردار پڑھنے کے بعد عملدرآمد کیا گیا ہے. ٹائم آؤٹ پیٹرن سب سے زیادہ حالیہ مخصوص عمل پر لاگو ہوتا ہے . کوئی ڈیفالٹ ٹائم آؤٹ نہیں ہے. خاص متغیر "ٹائم آؤٹ" ( امید کی کمانڈ کی طرف سے استعمال کیا جاتا ہے) اس وقت کے وقت کوئی اثر نہیں پڑتا ہے.

مثال کے طور پر، مندرجہ ذیل بیان صارفین کو خود کار طریقے سے استعمال کرنے کے لئے استعمال کیا جا سکتا ہے جنہوں نے ایک گھنٹہ کے لئے کچھ بھی نہیں لکھا لیکن جو بھی ابھی تک نظام کے پیغامات حاصل کرتے ہیں:

بات چیت - $ $ صارف_سپاون_ڈ ٹائم آؤٹ 3600 واپسی آؤٹ آؤٹ \ $ spawn_id

اگر پیٹرن مطلوبہ الفاظ کو ٹھیک ہے ، اور نوز کو اجازت دی جاتی ہے ( remove_nulls کمانڈ کے ذریعے)، اسی جسم کو ایک ہی کارروائی کی جاتی ہے تو ASCII 0 ملٹی ہے. 0 بائٹس سے ملنے کے لئے یہ ممکن نہیں ہے کہ عالمی یا رجسٹرڈ پیٹرن کے ذریعے.

پرچم ویوٹری کے ساتھ ایک پیٹرن کو پیش کرنے کا سبب بنتا ہے کہ متغیر interact_out (spawn_id) spawn_id کو مقرر کیا جاسکتا ہے جو پیٹرن (یا eof) سے ملاتا ہے.

وقفے جیسے وقفے اور جاری رکھنے کے لئے کنٹرول ڈھانچے کا سبب بنتا ہے (یعنی، کے لئے ، پرو ) معمول کے راستے پر عمل کرنے کے لئے. تاہم واپسی کے سبب اس کے کالر کو واپس آنے کے لۓ بات چیت کا سامنا کرنا پڑتا ہے، جبکہ inter_return اس کے کالر میں واپسی کا سبب بنتا ہے. مثال کے طور پر، اگر "پیرو فو" نے بات چیت کی ہے جس کے بعد کارروائی inter_return پر عملدرآمد ، proc foo واپس آ جائے گا. (اس کا مطلب یہ ہے کہ اگر کال کال میں مداخلت کرنے والے انٹرایکٹر انٹرایکٹو ٹائپنگ کی واپسی جاری رکھے گی، جبکہ inter_return اس کے رابطے میں واپس آنے کا سبب بن جائے گا.)

بات چیت کے دوران، خام موڈ کو استعمال کیا جاتا ہے تاکہ موجودہ کردار پر تمام حروف منظور ہوجائے. اگر موجودہ عمل نوکری کنٹرول اشارے کو نہیں پکڑتا ہے، تو یہ روکنے کے لئے روکا سگنل بھیج دیا جائے گا (پہلے سے طے شدہ ^ Z). اسے دوبارہ شروع کرنے کے لئے، جاری سگنل بھیجیں (جیسے جیسے "قتل - کینٹ"). اگر آپ واقعی ایک SIGSTOP اس طرح کے عمل کو بھیجنے کے لئے چاہتے ہیں (^ Z کی طرف سے)، سب سے پہلے spawning csh پر غور کریں اور پھر آپ کے پروگرام چلانے. دوسری طرف، اگر آپ خود کو امید کرنے کے لئے SIGSTOP بھیجنے کے لئے چاہتے ہیں تو، پہلے سب سے پہلے مترجم (شاید فرار ہونے والے کردار کا استعمال کرتے ہوئے)، اور پھر ^ Z دبائیں.

سٹرنگ جسم کے جوڑے مترجم کے طور پر استعمال کیا جا سکتا ہے کہ وہ مترجم داخل کرنے سے بچنے کے لئے اور مدافعانہ طور پر حکموں کو مرتب کریں. پچھلے ٹرمینل موڈ کا استعمال کیا جاتا ہے جبکہ تار کے جسم کے جوڑی کی لاش کو عملدرآمد کیا جا رہا ہے.

رفتار کیلئے، ڈیفالٹ ڈیفالٹ کی طرف سے خام موڈ میں عملدرآمد. اسکرین پرچم کو ٹرمینل دوبارہ تبدیل کرتا ہے جس میں اس سے پہلے بات چیت ہوئی تھی (عموما پکا ہوا موڈ). نوٹ کریں کہ جب موڈ کو تبدیل کیا جاسکتا ہے تو وہ کھو جائے گا (کچھ نظاموں پر ٹرمینل ڈرائیور کی بدقسمتی کی خصوصیت). استعمال کرنے کا واحد سبب یہ ہے کہ اگر آپ کا عمل پکا ہوا موڈ میں چلنے پر منحصر ہے.

گونج پرچم ایسے حروف بھیجتا ہے جو مندرجہ ذیل پیٹرن سے اس عمل سے واپس ملتا ہے جس سے ان کو پیدا کیا جاتا ہے جیسے ہر کردار پڑھا جاتا ہے. اس وقت مفید ہوسکتا ہے جب صارف جزوی طور پر ٹائپ پیٹرن سے آراء کو دیکھنے کی ضرورت ہے.

اگر ایک پیٹرن گونج کیا جارہا ہے لیکن آخر میں ناکام ہونے میں ناکام ہوجاتا ہے تو، حروف کو عمل میں بھیج دیا جاتا ہے . اگر سپرے شدہ عمل پھر ان کی طرف اشارہ کرتا ہے، تو صارف کو دو مرتبہ اکیلا دیکھے گا. اس تصویر پر آپ پہلے ہی غلط استعمال کی رپورٹ کر چکے / چکی ہیں. ہیلپ ڈیسک جلد از جلد معاملے کو دیکھے گا. تصویر کے بارے میں غلط استعمال کی اطلاع کرنے میں ایرر آ گیا ہے. مثال کے طور پر، مندرجہ ذیل اقتباس Rftp، ریورسسر-فوٹ سکرپٹ سے ہے، جہاں صارف کو ~ g، ~ p، یا ~ l داخل کرنے کے لئے حوصلہ افزائی کی جاتی ہے، دوبارہ ڈائرکٹری کو تازہ ترین ڈائرکٹری کی فہرست، یا ڈالنے کے لئے. یہ عام فوٹ پی آر احکامات سے کہیں زیادہ دور ہیں، اس صارف کو کسی اور کی پیروی کرنے کی امکان نہیں ہے، غلطی کے علاوہ، اس صورت میں، وہ شاید ہی اس کے نتیجے میں بھی نظر انداز کر سکیں گے.

بات چیت {-چو ~ جی {حاصل کرنے کے لئے 1} -چون ~ L {getcurdirectory 0} -چون ~ پی {ڈالڈڈوری ڈائریکٹری}}

نوبففر پرچم حروف کو بھیجتا ہے جو آؤٹ پٹ پروسیسنگ پر مندرجہ ذیل پیٹرن سے ملتا ہے جیسا کہ حروف پڑھا جاتا ہے.

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

proc lognumber {} {انٹریکٹ - نوبفرر -re "(. *) \ r" واپسی $ لاگ ان کرتا ہے "[گھڑی کی شکل [گھڑی سیکنڈ]]: dialed $ interact_out (1، string)"} interact -nobuffer "atd" lognumber

بات چیت کے دوران، log_user کے پچھلے استعمال کو نظر انداز کیا جاتا ہے. خاص طور پر، بات چیت لاگ ان کرنے کے لئے اس کی پیداوار کو مجبور کرے گا (معیاری پیداوار پر بھیجا گیا ہے) کیونکہ اس کا اندازہ لگایا جاتا ہے کہ صارف اندھیرے سے بات چیت نہیں کرتا.

اس پرچم کے کسی بھی مندرجہ ذیل کلیدی جسم کو موجودہ عمل کی پیداوار میں لاگو کرنے کا سبب بنتا ہے . یہ مفید ثابت ہوسکتا ہے، مثال کے طور پر، جب میزبانوں سے نمٹنے کے لئے ٹیلیٹس سیشن کے دوران ناپسندیدہ حروف بھیجتے ہیں.

پہلے سے طے شدہ طور پر، بات چیت کی توقع ہے کہ صارف کو اسٹیننگ لکھنے اور متوقع پروسیسنگ خود کے اسٹڈی آؤٹ پڑھنا. اے ایف پرچم ("صارف" کے لئے) صارف کے لۓ اس بات کا نقطہ نظر بنا دیتا ہے جس کے نام سے اس کے دلائل (جس کا نام شناخت ہونا ضروری ہے) کا نام ہے.

یہ دو الگ الگ عملوں کو ایک واضح لوپ کا استعمال کرتے ہوئے بغیر مل کر شامل ہونے کی اجازت دیتا ہے. ڈیبگنگ میں مدد کرنے کے لئے، تشخیصی کی توقع ہمیشہ ہمیشہ (یا کچھ لاگنگ اور ڈیبگنگ کی معلومات کے لئے اسٹڈی آؤٹ) میں جاتے ہیں. اسی وجہ سے، مترجم کمانڈر اسٹین سے الگ الگ پڑھا جائے گا.

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

اسپون لاگ ان سیٹ لاگ ان $ $ spawn_id سپون ٹپ موڈیم # صارف کو واپس ڈائل # کنیکٹیکٹ لاگ ان کرنے کے لئے صارف سے رابطہ قائم کریں- $ $ لاگ ان

ایک سے زیادہ عمل کرنے کے لئے پیداوار بھیجنے کے لئے، ایک آؤٹ پٹ پرچم کی طرف سے پہلے ہر اسپون آئی ڈی کی فہرست کی فہرست. پیداوار سپون ایڈز کے ایک گروپ کے لئے ان پٹ ایک انوپیٹ پرچم کی طرف سے پہلے سپون آئی ڈی کی فہرست کی طرف سے مقرر کیا جا سکتا ہے. (دونوں پائپ اور آؤٹ پٹ فہرست میں ایک ہی شکل میں لے جا سکتے ہیں جیسے متوقع کمانڈ میں، پرچم کسی بھی_spawn_id بات چیت میں معنی نہیں ہے.) تمام مندرجہ ذیل جھنگوں اور تار (یا پیٹرن) اس پٹ پر ایک دوسرے تک لاگو ہوتے ہیں - ان پٹ پرچم ظاہر ہوتا ہے. اگر کوئی ان پٹ ظاہر ہوتا ہے تو، آؤٹ پٹ کا مطلب ہوتا ہے "$ user_spawn_id آؤٹ پٹ". (اسی طرح، پیٹرن کے ساتھ جو نل نہیں ہے.) اگر ایک ان پٹ کی وضاحت کی گئی ہے تو یہ $ user_spawn_id کو اوور کر دیتا ہے. اگر دوسرا پائپ مقرر کیا جاتا ہے تو یہ $ spawn_id سے زیادہ ہے. اضلاع اضافی پرچم کی وضاحت کی جا سکتی ہے.

ان کے آؤٹ پٹ $ spawn_id اور $ user_spawn_id (ریورس میں) کے طور پر متعین ہونے کے لئے دو معتبر ان پٹ ڈیفالٹ عمل. اگر کوئی ان پٹ پرچم کے ساتھ ایک ان پٹ پرچم ظاہر ہوتا ہے تو، اس عمل کے حروف کو مسترد کر دیا جاتا ہے.

اس پرچم کو موجودہ اسپون_ڈ کے لۓ متبادل بناتا ہے جب کوئی دوسری پائپ یا آؤٹ پٹ پرچم استعمال نہ ہو. AI پرچم ایک-پرچم کا مطلب ہے.

یہ ممکن ہے کہ غیر قانونی سپاون ایسڈز استعمال کرکے اس عمل کو تبدیل کرنے کے ساتھ بات چیت کی جائے. (غیر متوقع سپن اموں کو متوقع کمانڈ کے سیکشن میں بیان کیا جاتا ہے.) غیر مستقیم سپن ای -آئ، -u، -put، یا آؤٹ پٹ پرچم کے ساتھ مخصوص کیا جا سکتا ہے.

مترجم [args]
توقع کرتا ہے کہ صارف متوقع طور پر توقع اور Tcl حکم کے لئے حوصلہ افزائی کی جائے. ہر کمانڈ کا نتیجہ پرنٹ کیا جاتا ہے.

وقفے جیسے وقفے اور جاری رکھنے کے لئے کنٹرول ڈھانچے کا سبب بنتا ہے (یعنی، کے لئے ، پرو ) معمول کے راستے پر عمل کرنے کے لئے. تاہم واپسی کا سبب بنتا ہے کہ اس کے کالر پر واپس آنے والے مترجم، جبکہ inter_return اس کے کالر میں واپسی کی وجہ سے مترجم کا سبب بنتا ہے . مثال کے طور پر، اگر "پرو فو" نے مترجم کو بلایا جس کے بعد کارروائی inter_return پر عملدرآمد ، proc foo واپس آ جائے گا. کسی بھی دوسرے کمانڈر نے نئے حکموں کے لئے فوری طور پر جاری رکھنے کے مترجم کا سبب بنتا ہے.

پہلے سے طے شدہ طور پر، فوری طور پر دو انباق شامل ہیں. پہلا اشارہ تشخیص اسٹیک کی گہرائی بیان کرتا ہے (یعنی، کتنے بار Tcl_Eval کو بلایا گیا ہے). دوسرا انوکر Tcl تاریخ شناختی والا ہے. فوری طور پر "فوری طور پر 1" کہا جاتا ہے جس کے طریقہ کار کی واپسی کی قیمت اگلی فوری طور پر ہوسکتی ہے. اگر ایک بیان میں کھلی حوالہ جات، پارنس، برتن، یا بریکٹ، ایک ثانوی فوری طور پر (اگر پہلے سے طے شدہ "+>") کی طرف سے نئی لائن پر جاری کیا جاتا ہے. ثانوی فوری طور پر "prompt2" نامی ایک طریقہ کار کی وضاحت کی طرف سے مقرر کیا جا سکتا ہے.

مترجم کے دوران، پکا ہوا موڈ استعمال کیا جاتا ہے، یہاں تک کہ اگر اس کے کالر خام موڈ کا استعمال کررہا ہے.

اگر سٹین بند ہو تو، مترجم واپس آنے تک جب تک کسی پرچم کا استعمال نہ کیا جاتا ہے، اس صورت میں جس میں بعد میں بحث کی گئی ہے.

log_file [args] [[ایک] فائل]
اگر ایک فائل کا نام فراہم کیا جاتا ہے تو، لاگ ان فائل فائل میں سیشن کا آغاز (اس وقت شروع ہوتا ہے) ریکارڈ کرے گا. اگر کوئی دلیل نہیں دی جاتی ہے تو لاگ ان فائل ریکارڈنگ کو روک دے گا. کسی بھی پچھلے لاگ فائل بند ہے.

فائل نام کے بجائے، ایک Tcl فائل کا شناخت کنندہ کھولنے یا کھولنے کھولنے والے پرچموں کو استعمال کرکے فراہم کی جا سکتی ہے. یہ سپون کمانڈ کی طرح ہے. (مزید معلومات کے لئے سپون دیکھیں.)

ایک پرچم فورسز کی پیداوار کو لاگ ان کرنے کی ضرورت ہے جو لاگ_سیر کمانڈ کی طرف سے زور دیا گیا تھا.

پہلے سے طے شدہ طور پر، log_file کمانڈر ان کو چھٹکارا کرنے کے بجائے پرانے فائلوں میں شامل ہوتے ہیں، اس کے لۓ لاگ ان کو بند کرنے اور ایک سیشن میں ایک سے زیادہ مرتبہ تبدیل کرنے کے قابل ہوسکتا ہے. فائلوں کو چھٹکارا کرنے کے لئے، نوپریپرن پرچم کا استعمال کریں.

آئوفی پرچم کا سبب بنتا ہے log_file دیئے جانے والے سب سے زیادہ حالیہ غیر معلومات کے دلائل کی وضاحت واپس کرنے کے لئے.

log_user -fofo | 0 | 1
پہلے سے طے شدہ طور پر، سٹڈ آؤٹ پر بات چیت / بھیجنے کی توقع کی جاتی ہے (اور کھلی کھلی لاگ ان). اسٹڈ آؤٹ کرنے کے لۓ لاگ ان کو "log_user 0" کے حکم سے غیر فعال کردیا جاتا ہے اور "log_user 1" کی طرف سے دوبارہ دوبارہ مرتب کیا جاتا ہے. لاگ ان کو لاگ ان کرنے میں کوئی تبدیلی نہیں ہے.

انوفی پرچم کا سبب بنتا ہے log_user کو دی گئی تازہ ترین غیر جانبدار دلیلوں کی وضاحت واپس کرنے کے لئے.

match_max [-d] [-i spawn_id] [سائز]
بفر کے سائز کی وضاحت کرتا ہے (بائٹ میں) کی توقع سے اندرونی طور پر استعمال کیا جاتا ہے . کوئی سائز کی دلیل کے ساتھ، موجودہ سائز واپس آ گیا ہے.

ڈی-ڈی پرچم کے ساتھ، پہلے سے طے شدہ سائز مقرر کیا جاتا ہے. (ابتدائی ڈیفالٹ 2000 ہے.) -I پرچم کے ساتھ، سائز نام اسپون آئی ڈی کے لئے مقرر کیا گیا ہے، دوسری صورت میں یہ موجودہ عمل کے لئے مقرر کیا گیا ہے .

اوورلے [- # spawn_id] [- # spawn_id] [...] پروگرام [args]
موجودہ متوقع پروگرام کی جگہ پر "پروگرام کے دلائل" پر عملدرآمد کردیتا ہے، جو ختم ہوجاتا ہے. ایک ننگی ہفین دلیل کمانڈ کے نام کے سامنے ایک ہفین کو قوت دیتا ہے جیسے یہ لاگ ان شیل تھا. تمام spawn_ids بند کئے جاتے ہیں مگر اس کے علاوہ جو دلائل کے طور پر نامزد ہیں. یہ نام کی فائل شناختی کاروں پر نقشہ لگایا گیا ہے.

Spawn_ids وارث ہونے کے لئے نئے پروگرام کے لئے شناختی کاروں کو فائل کرنے کے لئے نقشہ لگایا گیا ہے. مثال کے طور پر، مندرجہ ذیل لائن شطرنج چلاتی ہے اور موجودہ عمل کی طرف سے کنٹرول کرنے کی اجازت دیتا ہے - ایک شطرنج ماسٹر کہتے ہیں.

اوورلے -0 $ spawn_id -1 $ spawn_id -2 $ spawn_id شطرنج

یہ "بات چیت" کے مقابلے میں زیادہ موثر ہے، تاہم، اس پروگرام سے متعلق تعامل کرنے کی صلاحیت قربانی کرتی ہے کیونکہ متوقع عمل اب تک کنٹرول میں نہیں ہے.

نوٹ کریں کہ کوئی کنٹرول ٹرمینل فراہم نہیں کیا جاتا ہے. اس طرح، اگر آپ معیاری ان پٹ کو منقطع یا ریمپ کرتے ہیں تو، پروگراموں کو ملازمت کنٹرول (گولیاں، لاگ ان وغیرہ وغیرہ) مناسب طریقے سے کام نہیں کرے گا.

مساوات [-d] [-i spawn_id] [قدر]
اس بات کی وضاحت کرتا ہے کہ برابر عملوں کی پیداوار سے اخلاقیات کو برقرار رکھا جانا چاہئے یا نہیں. اگر قیمت صفر ہے تو، مساوات چھٹکارا ہے، دوسری صورت میں اسے چھٹکارا نہیں ہے. کوئی قدر دلیل کے ساتھ، موجودہ قیمت واپس آ گیا ہے.

ڈی-ڈی پرچم کے ساتھ، پہلے سے طے شدہ متحرک قیمت مقرر کی گئی ہے. (ابتدائی ڈیفالٹ 1 ہے، یعنی، مساوات چھٹکارا نہیں ہے.) -I پرچم کے ساتھ، نامیاتی نام نامی سپاون آئی ڈی کے لئے مقرر کیا جاتا ہے، دوسری صورت میں یہ موجودہ عمل کے لئے مقرر کیا جاتا ہے.

remove_nulls [-d] [-i spawn_id] [value]
وضاحت کرتا ہے کہ اگرچہ پیٹ سے مماثلت یا متغیر expect_out یا interact_out میں ذخیرہ کرنے سے پہلے ناک عملوں کی پیداوار سے نکالا جاتا ہے یا ہٹا دیا جاتا ہے. اگر قیمت 1 ہے، نوپس ہٹا دیا جاتا ہے. اگر قیمت 0 ہے، نوز کو ہٹایا نہیں جاتا ہے. کوئی قدر دلیل کے ساتھ، موجودہ قیمت واپس آ گیا ہے.

ڈی جی پرچم کے ساتھ، پہلے سے طے شدہ قیمت مقرر کی گئی ہے. (ابتدائی ڈیفالٹ 1 ہے، یعنی، نوز کو ہٹا دیا گیا ہے.) -I پرچم کے ساتھ، نام نامزد اسپون آئی ڈی کے لئے مقرر کیا جاتا ہے، دوسری صورت میں یہ موجودہ عمل کے لئے مقرر کیا جاتا ہے.

چاہے نولز کو ہٹایا جاسکتا ہے، امید ہے کہ نچلے بائٹ کو لاگ ان اور اسٹاک آؤٹ لکھیں.

[flags] string بھیجیں
موجودہ عمل کو سٹرنگ بھیجتا ہے. مثال کے طور پر، کمانڈ

"ہیلو دنیا \ r" بھیجیں

حروف، helloworld موجودہ عمل کو بھیجتا ہے. (Tcl میں ایک پرنف- ناپسند کمانڈ ( فارمیٹ کہا جاتا ہے) جس میں دلیل پیچیدہ تار بنا سکتے ہیں.)

حروف کو فوری طور پر بھیجا جاتا ہے اگرچہ واپسی والے حروف تک نہیں بھیجے جانے تک لائن لائن والے ان پٹ کے پروگراموں کو حروف کو نہیں پڑھا جائے گا. واپسی کا کردار "\ r" کا حوالہ دیا جاتا ہے.

پرچم کی بجائے ایک پرچم کے بجائے ایک تار کے طور پر تفسیر کرنے کے لئے اگلے دلیل فورسز. کسی بھی تار سے پہلے "-" کی طرف سے کیا جا سکتا ہے یا نہیں یہ اصل میں ایک پرچم کی طرح لگتا ہے. یہ متغیر طور پر پرچم کی طرح نظر آتے ہیں ان لوگوں کی طرف سے ٹراؤنڈ کے بغیر متغیر تار کی وضاحت کرنے کے لئے ایک قابل اعتماد میکانزم فراہم کرتا ہے. (مستقبل کے اختیارات کے لئے شروع ہونے والے تمام تار "-" محفوظ ہیں.)

اس پرچم کا اعلان کرتا ہے کہ تار نامی اسپاون_ڈ کو بھیج دیا جائے گا. اگر spawn_id user_spawn_id ہے، اور ٹرمینل خام موڈ میں ہے تو، سٹرنگ میں نئی ​​لائنوں کو ریگولیشن لائن لائنوں میں ترجمہ کیا جاتا ہے تاکہ وہ ظاہر ہوجائے کہ ٹرمینل پکا ہوا موڈ میں تھا. اسکرین پرچم کو یہ ترجمہ غیر فعال کرتا ہے.

خالص پرچم نال حروف (0 بائٹس) بھیجتا ہے. پہلے سے طے شدہ طور پر، ایک سست بھیجا جاتا ہے. ایک انوج کو نفاذ کی پیروی کر سکتا ہے کہ اس بات کی نشاندہی کی جائے کہ کس طرح بہت سارے نپل بھیجتے ہیں.

بریک پرچم ایک وقفے کی حالت پیدا کرتا ہے. یہ صرف احساس ہوتا ہے کہ سپن آئی ڈی "سپون-کھول" کے ذریعہ کھولنے والی ٹٹی آلہ سے مراد ہے. اگر آپ نے ٹپ جیسے عمل کو جنم دیا ہے تو، آپ کو ایک وقفے پیدا کرنے کے لئے ٹپ کا کنونشن استعمال کرنا چاہئے.

ایس ایس کے پرچم افواج کی پیداوار "آہستہ آہستہ" بھیجی جاتی ہے، اس طرح عام صورت حال سے بچنے کے لئے جہاں کمپیوٹر ان پٹ بفر کو ایک انسان کے لئے تیار کیا گیا ہے جو کبھی بھی بفر کو نہیں نکال سکے گا. یہ پیداوار متغیر "send_slow" کی قیمت کی طرف سے کنٹرول کیا جاتا ہے جس میں دو عناصر کی فہرست ہوتی ہے. پہلا عنصر ایک انوزر ہے جو بائٹس کی تعداد کو جوہری طور پر بھیجنے کی وضاحت کرتی ہے. دوسرا عنصر ایک حقیقی نمبر ہے جو سیکنڈ کی تعداد کی وضاحت کرتی ہے جس کے ذریعہ ایٹمی بھیجتا ہے. مثال کے طور پر، "send_slow {10 .001} قائم کریں" بھیجیں گے "send -s" کو ہر 10 حروف کے درمیان 1 ملیس سیکنڈ کے ساتھ تار بھیجنے کے لئے.

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

ایک مثال کے طور پر، مندرجہ ذیل کمانڈ ایک تیز اور مسلسل ٹائپسٹ کو کماتا ہے:

send_human مقرر کریں .1 .1 .3 1 .05 2} send -h "مجھے بھوک لگی ہے. دوپہر کے کھانے دو."

جبکہ پھانسی کے بعد درج ذیل مناسب ہوسکتا ہے:

send_human مقرر کریں .4 .4 .2 .5 100} send -h "گدھے کی پارٹی کی لشکر رات!"

نوٹ کریں کہ غلطیوں کو مصنوع نہیں کیا جاتا ہے، اگرچہ آپ کو غلطی کی اصلاح کو ترتیب دینے میں غلطی اور اصلاحات کو سراغ لگانے کے ذریعہ خود کو وضع کر سکتا ہے.

ٹوٹ بھیجنے کے لئے، نوک حروف بھیجنے کے لئے پرچم، سست آؤٹ پٹ مجبور کرنے اور انسانی طرز کی پیداوار کے لئے متعدد خصوصی ہیں. صرف ایک مخصوص آخری استعمال کیا جائے گا. مزید برآں، نال حروف یا وقفے کو بھیجنے کے لئے پرچم کے ساتھ کوئی تارکینج دلیل نہیں کی جاسکتی ہے.

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

# ہیکرز کو کیسے توڑنے کے بارے میں اشارہ کرنے سے بچنے کے لۓ، # اس نظام کو بیرونی پاسورڈ کے لئے فوری طور پر جواب نہیں دیتا. # سپن ٹیلیٹ بہت.secure.gov کو نیند کو مکمل کرنے کے عمل کے لئے 5 سیکنڈ تک انتظار کریں 5 پاسورڈ بھیجیں

exp_send بھیجنے کے لئے ایک عرف ہے . اگر آپ کو Tk ماحول میں امید کی توقعات یا کسی دوسری قسم کا استعمال کر رہے ہیں، تو TK ایک مکمل مقصد کے لئے مقرر کی گئی ہے. exp_send ماحول کے درمیان مطابقت کے لئے فراہم کی جاتی ہے. اسی طرح کے عرفات دیگر امیدوں کے دوسرے بھیجنے والے حکموں کے لئے فراہم کی جاتی ہیں.

send_error [-flags] تار
بھیجنے کی طرح ہے، اس کے علاوہ پیداوار موجودہ پروسیسنگ کے بجائے اسکرین پر بھیجی جاتی ہے .

send_log [-] تار
بھیجنے کی طرح ہے، اس کے علاوہ کہ تار صرف لاگ فائل میں بھیج دیا جاتا ہے ( log_file ملاحظہ کریں .) لاگ ان فائلوں کو کھلا نہیں ہے تو دلیلوں کو نظر انداز کیا جاتا ہے.

send_tty [-پرچم] تار
بھیجنے کی طرح ہے، اس کے علاوہ پیداوار موجودہ پروسیسنگ کے مقابلے میں / dev / tty بھیجا جاتا ہے.

send_user [-flags] string
بھیجنے کی طرح ہے، اس کے علاوہ پیداوار موجودہ پروسیسنگ کے بجائے اسٹاک آؤٹ کرنے کے لئے بھیجی جاتی ہے .

نیند سیکنڈ
اسکرپٹ کو دیئے گئے سیکنڈ کے سیکنڈ کے لئے سونے کا سبب بنتا ہے. سیکنڈز ایک بیزاری نمبر ہوسکتی ہے. مداخلت (اور Tk واقعات اگر آپ Exppectk استعمال کررہے ہیں) پروسیسنگ کئے جاتے ہیں جبکہ سونے کی توقع ہوتی ہے.

سپون [args] پروگرام [args]
"پروگرام کے دلائل" چلانے والے ایک نیا عمل تخلیق کرتا ہے. اس کے اسٹین، سٹڈ آؤٹ اور اسٹڈرر توقع سے منسلک ہیں، تاکہ وہ دوسرے ممکنہ حکموں کے ذریعہ پڑھ سکیں اور لکھیں. کنکشن قریب سے ٹوٹ جاتا ہے یا اگر عمل خود فائل شناختی میں سے کسی کو بند کر دیتا ہے.

جب سپون کی طرف سے ایک عمل شروع ہوتا ہے تو، متغیر spawn_id اس عمل کو اشارہ کرنے کے لئے مقرر کیا جاتا ہے. spawn_id کی طرف سے بیان کردہ عمل کو "موجودہ عمل " سمجھا جاتا ہے. spawn_id پڑھنے یا لکھا جا سکتا ہے، نوکری کو کنٹرول فراہم کرنے میں.

user_spawn_id ایک متنوع متغیر ہے جس میں ایک descriptor جس میں صارف سے مراد ہے. مثال کے طور پر، جب spawn_id اس قدر مقرر کیا جاتا ہے، تو expect_user کی طرح سلوک کرتا ہے.

. error_spawn_id ایک descriptor مشتمل ایک متغیر متغیر ہے جو معیاری غلطی سے مراد ہے. مثال کے طور پر، جب spawn_id اس قدر مقرر کیا جاتا ہے تو send_error کی طرح رویے بھیجیں .

tty_spawn_id ایک متغیر متغیر متغیر ہے جس میں ایک descriptor جس میں / dev / tty کی طرف اشارہ ہے. اگر / dev / tty موجود نہیں ہے (جیسے جیسے کرون، پر یا بیچ سکرپٹ میں)، تو tty_spawn_id کی وضاحت نہیں کی جاتی ہے. یہ تجربہ کیا جا سکتا ہے:

اگر {{info vars tty_spawn_id]} {# / dev / tty exists} اور {{/ dev / tty موجود نہیں ہے} شاید کرون، بیچ، یا اسکرپٹ میں موجود نہیں ہے}

اقوام متحدہ کے عمل کی شناخت کو واپس کرتا ہے. اگر کوئی عمل نہیں ہوا تو، 0 واپس آ گیا ہے. متغیر spawn_out (غلام، نام) پیٹی غلام آلہ کے نام پر مقرر کیا جاتا ہے.

ڈیفالٹ کی طرف سے، سپون کو کمانڈ کا نام اور دلیلوں کو بڑھا دیتا ہے. یہؤنکو پرچم ایسا کرنے سے روکتا ہے .

اسکرین پرچم کا سبب بناتا ہے کہ پروسیسنگ پیداوار پیداوار کے عمل میں ری ڈائریکٹ کیا جائے. یہ تمام نظاموں پر معاون نہیں ہے.

داخلی طور پر، سپن ایک پیٹی کا استعمال کرتا ہے، صارف کی مقدار کے طور پر اسی طرح شروع کیا. یہ مزید ابتدائی ہے تاکہ تمام ترتیبات "عقل" (سٹی (1) کے مطابق ہیں. اگر متغیر stty_init کی وضاحت کی جاتی ہے، تو اس کی مزید ترتیب کے طور پر اسٹٹی دلائلوں کے انداز میں تفسیر کی جاتی ہے. مثال کے طور پر، "stty_init خام مقرر کریں" کو مزید خام موڈ میں شروع کرنے کے لئے عمل کے ٹرمینلوں کو پیدا کیا جائے گا. نیٹوپیپی صارف کے ٹیٹی کی بنیاد پر ابتدائی طور پر کھاتا ہے. -نٹینیٹ "ابتدائی" ابتداء کو ختم کرتا ہے.

عام طور پر، سپن کو انجام دینے کے لئے تھوڑا سا وقت لگتا ہے. اگر آپ کو ایک اہم وقت لگانا سپون محسوس ہوتا ہے، تو شاید شاید وہ پیٹی کا سامنا ہوسکتا ہے جسے پیٹا جاتا ہے. بہت سے ٹیسٹ ptys پر چل رہے ہیں تاکہ آتشوں کے عمل کے ساتھ جذباتی سے بچنے کے لۓ. (یہ ہر پھاڑ پٹی کے 10 سیکنڈ لے جاتے ہیں.) ڈی ڈی اختیار کے ساتھ چل رہا ہے تو ظاہر کرے گا اگر امید ہے کہ غیر ریاستوں میں بہت سے ptys کا سامنا کرنا پڑتا ہے. اگر آپ ان عملوں کو منسلک نہیں کر سکتے ہیں جس میں ان کے پیٹی منسلک ہوتے ہیں، آپ کا واحد طریقہ دوبارہ ریبوٹ ہوسکتا ہے.

اگر پروگرام کامیاب نہیں ہوسکتا ہے کیونکہ عمل (2) ناکام ہوجاتا ہے (مثال کے طور پر جب پروگرام موجود نہیں ہے)، ایک غلطی کا پیغام اگلے بات چیت کی طرف سے واپس آ جائے گا یا توقع کمانڈ کے طور پر اگر پروگرام آؤٹ پٹ کے طور پر غلطی کا پیغام چلاتا ہے اور تیار کیا جائے گا. یہ رویہ سپون کے عمل کے قدرتی نتائج کا حامل ہے. اندرونی طور پر، سپون فورکس، جس کے بعد سپرے عمل سپونائیڈ کے ذریعہ مواصلات کے سوا اصل توقع کے عمل سے گفتگو کرنے کا کوئی طریقہ نہیں ہے.

کھولنے والے پرچم کا سبب بنتا ہے کہ اگلا دلیل Tcl فائل شناختی والا (یعنی، کھلی طرف سے واپس آ گیا ہے) کے طور پر تشریح کی جائے. سپونا آئی ڈی اس طرح استعمال کیا جاسکتا ہے کہ یہ ایک پیچیدہ عمل تھا . (فائل کی شناخت کنندہ کو اب استعمال نہیں کرنا چاہئے.) اس سے آپ کو pty استعمال کرنے کے بغیر خام آلات، فائلوں اور پائپ لائنز کا علاج کرنے کی اجازت دیتی ہے. 0 واپس آ گیا ہے اس بات کا اشارہ کرنے کے لئے کوئی منسلک عمل نہیں ہے . جب سپلائی کے عمل سے منسلک ہوتا ہے تو، تو Tcl فائل شناختی والا ہے. بلیوپن پرچم اسی طرح کھولنے کی طرح ہے، اس کے علاوہ - اسوپن کھولتا ہے کہ اسپون آئی ڈی بند ہونے کے باوجود بھی فائل کی شناخت کو کھولنے کے لئے کھلے رہیں.

خالی پرچم کی وجہ سے پی ایس کو کھولی جائے گی لیکن کوئی کارروائی نہیں ہوئی. 0 واپس آ گیا ہے اس بات کا اشارہ کرنے کے لئے کوئی منسلک عمل نہیں ہے . Spawn_id ہمیشہ کی طرح مقرر کیا جاتا ہے.

متغیر spawn_out (غلام، ایف ڈی) پیٹی غلام کے مطابق ایک فائل کی شناخت کنندہ پر قائم ہے. یہ "قریبی لوازمات" کا استعمال کرتے ہوئے بند کر دیا جا سکتا ہے.

نامزد پرچم نامی عمل میں نظر انداز کرنے کے لئے ایک اشارہ نام. دوسری صورت میں، سگنل کو ڈیفالٹ رویے ملتا ہے. نشانوں کے طور پر نیٹ ورک کمانڈ میں نامزد کیا جاتا ہے، اس کے علاوہ ہر سگنل کو علیحدہ پرچم کی ضرورت ہوتی ہے.

سطح کو دور کرنا
اعدام کرنے سے پہلے پرنٹ ہونے کے بیانات کے بعد کی وجہ سے. (Tcl کے ٹریس کمانڈ کے نشان متغیرات.) سطح کی طرف اشارہ کرتا ہے کہ کال میں ٹریک میں کتنا دور ہے. مثال کے طور پر، کالم کی پہلی 4 سطحوں کو سراغ لگانے کے بعد مندرجہ ذیل کمانڈ توقع کرتا ہے، لیکن اس کے نیچے کوئی بھی نہیں.

توقع ہے-c "4" لکھا "سکرپٹ. متو

انفو پرچم کا سبب بنتا ہے کہ دیئے جانے والی سب سے زیادہ غیر معلومات والے دلائلوں کی وضاحت واپس آنا.

سٹٹی args
بیرونی اسٹٹی کمانڈر کو ٹرمینل طریقوں میں بھی تبدیل کرتا ہے.

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

مثال کے طور پر، خام یا ککڑے والے دلائل خام موڈ میں ٹرمینل ڈالتے ہیں. دلائل یا پکوے نے ٹرمینل پکا ہوا موڈ میں ڈال دیا. دلائل سنبھالتے ہیں اور مسلسل ٹرمینل میں گونج اور عروج موڈ ترتیب دیتے ہیں.

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

stty -chocho send_user "پاس ورڈ:" expect_user -re "(. *) \ n" پاس ورڈ مقرر کریں $ expect_out مقرر (1، تار) stty گونگا

نظام کے دلائل
(1) ان پٹ کے طور پر ارضوں کو دیتا ہے، جیسے ہی یہ ایک ٹرمینل سے ایک کمانڈ کے طور پر ٹائپ کیا گیا تھا. شیل ختم ہوجاتا ہے جب تک انتظار نہیں ہوتا. ش سے واپسی کی حیثیت اسی طرح سنبھالا ہے جس کی وجہ سے اس کی واپسی کی حیثیت کو ہینڈل کرنا ہوتا ہے.

عمل کرنے کے برعکس اس کو سکرپٹ میں اسٹین اور اسٹڈی آؤٹ کی ہدایت کی جاتی ہے تو، سسٹم کو کوئی ریئیریکشن نہیں کرتا ہے (اس کے علاوہ جو تار خود کی نشاندہی کرتا ہے). اس طرح، پروگراموں کو استعمال کرنا ممکن ہے جو براہ راست / dev / tty سے بات کرنا ضروری ہے. اسی وجہ سے، لاگ ان میں نظام کے نتائج ریکارڈ نہیں کیے جاتے ہیں.

ٹائمسٹیمپ [args]
ٹائمسٹیمپ واپسی کرتا ہے. کوئی دلیل کے ساتھ، ایجچ کے بعد سے سیکنڈ کی تعداد واپس آ گئی ہے.

انفارمیشن پرچم ایک تار جس کو واپس آ گیا ہے متعارف کرایا ہے لیکن اس کے ساتھ ساتھ متبادل کے لئے POSIX قواعد کے مطابق کئے گئے متبادلات کے ساتھ. مثال کے طور پر٪ ایک مختصر اختتام کے دن (یعنی، Sat) کی طرف سے تبدیل کیا جاتا ہے. دیگر ہیں:

ایک مختصر اختتام کے دن کا نام٪ A پورے ہفتے کے دن کا نام٪ ب مختصر مہینہ کا نام٪ B پورے مہینہ کا نام٪ c تاریخ وقت کے طور پر: Wed اکتوبر 6 11:45:56 ماہ کے 1993٪ دن (01-31٪ ایچ گھنٹے (00-23)٪ ای گھنٹہ (01-12)٪ ج دن (001-366)٪ ایم مہینہ (01-12)٪ ایم منٹ (00-59)٪ پی ایم او ایس سیکنڈ (00-61) ٪ دن (1-7، پیر ہفتہ کا پہلا دن ہے)٪ یو ہفتہ (00-53، پہلے اتوار، ہفتے کے پہلے دن کا پہلا دن)٪ V ہفتے (01-53، ISO 8601 سٹائل)٪ W دن (0- 6)٪ W ہفتہ (00-53، پہلے پیر پیر ہفتہ کا پہلا دن ہے) ایکس ایکس وقت کے طور پر: Wed اکتوبر 6 1993٪ ایکس وقت کے طور پر: 23:59:59٪ y سال (00-99) Y سال کے طور پر: 1993٪ Z ٹائم زون (یا اگر کوئی قابل نہیں ہے) ٪٪ ایک ننگی فیصد نشان

دیگر٪ وضاحتیں غیر منقول ہیں. دیگر حروف غیر مسدود کئے جائیں گے. صرف سی مقامی حمایت کی جاتی ہے.

عروج پرچم کی شکل میں ایک سیکنڈ کے طور پر استعمال کرنے کے لئے کئی سیکنڈ متعارف کرایا جاسکتے ہیں . ورنہ، موجودہ وقت استعمال کیا جاتا ہے.

GMT ٹائم زون کا استعمال کرنے کے لئے Gmt پرچم افواج ٹائمسٹیمپ پیداوار. پرچم کے ساتھ، مقامی ٹائم زون استعمال کیا جاتا ہے.

نیٹ ورک [[کمانڈر] سگنلز]
دیئے جانے والے کمانڈ کو کسی بھی دیئے گئے سگنل کی مستقبل کی رسید پر عملدرآمد کرنے کا سبب بنتا ہے. کمانڈ عالمی سطح پر پھانسی دی گئی ہے. اگر کمانڈ غیر حاضر ہے، سگنل کارروائی واپس آ گیا ہے. اگر حکم سٹرنگ SIG_IGN ہے، تو سگنل کو نظر انداز کر دیا جاتا ہے. اگر حکم سٹرنگ SIG_DFL ہے، تو سگنل کا نظام ڈیفالٹ کا نتیجہ ہے. سگنل یا تو ایک سنگل سگنل یا سگنل کی ایک فہرست ہے. سگنل (3) کے مطابق سگنل کو عددی طور پر یا علامتی طور پر مخصوص کیا جا سکتا ہے. "SIG" پیش نظارہ ختم کر دیا جا سکتا ہے.

کوئی دلیل (یا دلائل - نمبر) کے ساتھ، نیٹ ورک ابھی تک عملدرآمد کے نیٹ ورک کمانڈ کی سگنل نمبر کو واپس نہیں دیتا.

کوڈ کے پرچم کو کمانڈ کے واپسی کوڈ کا استعمال کرتا ہے جو کچھ بھی کوڈ Tcl تھا جب اصل میں شروع ہونے والے کمانڈ کو واپس کرنے کے بارے میں تھا.

پرنٹر پرچم کا سبب بنتا ہے کہ جب کمانڈ شروع ہوجائے تو نیٹ ورک کا استعمال کرتے ہوئے کمانڈر فعال کا استعمال کرکے اندازہ لگایا جارہا ہے.

نام کے پرچم کو نیٹ ورک کمان کا سبب بنتا ہے جو فی الحال کمانڈر کا سگنل نام واپس چلتا ہے.

مکس پرچم کی وجہ سے نیٹ ورک کا سب سے بڑا سگنل نمبر مقرر کیا جا سکتا ہے.

مثال کے طور پر، کمانڈر "نیٹ ورک {send_user" Ouch! "} SIGINT" "اوچ!" پرنٹ کریں گے. ہر بار جب صارف پریس کرتا ہے ^ سی.

پہلے سے طے شدہ طور پر، SIGINT (جو عام طور پر ^ سی دباؤ کی طرف سے تیار کیا جا سکتا ہے) اور SIGTERM وجہ سے باہر نکلنے کی توقع ہے. یہ مندرجہ ذیل نیٹ ورک کی وجہ سے ہے، جو پہلے سے طے شدہ کی طرف سے پیدا ہونے کی امید ہے.

نیٹ ورک سے باہر نکلیں {SIGINT SIGTERM}

اگر آپ ڈیجیٹل شروع کرنے کے لئے ڈی ڈی پرچم کا استعمال کرتے ہیں تو، SIGINT انٹرایکٹو ڈیبگر شروع کرنے کے لئے ریفریج کیا جاتا ہے. یہ مندرجہ ذیل نیٹ ورک کی وجہ سے ہے:

نیٹ ورک {EX_debug 1} SIGINT

ڈیبگر نیٹ ورک تبدیل کر سکتے ہیں ماحولیاتی متغیر EXPECT_DEBUG_INIT کو ایک نیا نیٹ ورک کمانڈ میں ترتیب دے کر.

آپ کر سکتے ہیں، بالکل، آپ کی سکرپٹ میں نیٹ ورک کے احکامات شامل کر کے صرف ان دونوں کو اوورائڈ کر سکتے ہیں. خاص طور پر، اگر آپ کے پاس "اپنے نیٹ ورک سے نکلنے کے سگنل" ہے، تو یہ ڈیبگر نیٹ ورک کو اونٹ کر دیا جائے گا. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. اس ویڈیو پر غلط استعمال کی اطلاع دیتے ہوئے ایرر آ گیا ہے.

اگر آپ SIGINT پر اپنی اپنی نیٹ ورک کی وضاحت کرنا چاہتے ہیں لیکن یہ چل رہا ہے جب بھی ڈیبگر پر نیٹ ورک کا استعمال کریں، استعمال کریں:

اگر {! [exp_debug]} {نشان زدہ نشان لگائیں SIGINT}

متبادل طور پر، آپ کو دوسرے سگنل کا استعمال کرتے ہوئے ڈیبگر کو ٹریفک کرسکتے ہیں.

نیٹ ورک آپ SIGALRM کے لئے کارروائی کو ہٹانے نہیں دے گا کیونکہ یہ امید ہے کہ یہ اندرونی طور پر استعمال کیا جاتا ہے. منقطع کمانڈ SIGALRM پر SIG_IGN (نظر انداز) کرتا ہے. جب تک کہ آپ بعد میں سپوان حکموں کے دوران اسے غیر فعال کر سکتے ہیں، آپ اسے دوبارہ دوبارہ دوبارہ تبدیل کرسکتے ہیں.

مزید معلومات کے لئے سگنل (3) دیکھیں.

انتظار کرو
کسی نہ کسی طرح کے عمل تک تاخیر (یا اگر کوئی نام نہیں دیا جاتا ہے تو موجودہ عمل ) ختم ہوجاتا ہے.

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

اضافی عناصر انتظار سے واپسی قیمت کے اختتام پر ظاہر ہوسکتے ہیں. ایک اختیاری پانچویں عنصر معلومات کی کلاس کی شناخت کرتا ہے. فی الحال، اس عنصر کے لئے صرف ممکنہ قیمت CHILDKILLED ہے جس میں اگلے دو اقدار سی طرز سگنل نام اور مختصر متناسب وضاحت ہیں.

اے ایف پرچم نے اس نام کا نام نامہ سپاون_ڈ ( عمل کی شناخت) کے ساتھ ہی انتظار کرنے کا اعلان کیا ہے . SIGCHLD ہینڈلر کے اندر، سپاون آئی ڈی -1 کا استعمال کرتے ہوئے کسی ممکنہ عمل کا انتظار کرنا ممکن ہے.

الوداع پرچم کا سبب بنتا ہے کہ فوری طور پر کامیاب انتظار کے اشارہ کے ساتھ انتظار کریں. جب عمل (بعد میں) سے باہر نکلتا ہے تو، یہ واضح انتظار کے بغیر خود بخود غائب ہو جائے گا.

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

لائبریری

متوقع سکرپٹ کے لئے دو بلٹ ان لائبریریوں کے بارے میں خود بخود جانتا ہے. یہ متغیر exp_library اور exp_exec_library میں نامی ڈائریکٹریز کی طرف سے وضاحت کی جاتی ہیں. دونوں کا استعمال افادیت کی فائلوں پر مشتمل ہے جس سے دیگر سکرپٹ کی طرف سے استعمال کیا جاسکتا ہے.

exp_library فن تعمیر آزاد آزاد فائلوں پر مشتمل ہے. exp_exec_library پر مشتمل فن تعمیر - انحصار شدہ فائلوں. آپ کے نظام پر منحصر ہے، دونوں ڈائریکٹریوں کو مکمل طور پر خالی ہوسکتا ہے. فائل $ exp_exec_library / بلی بفر کے وجود کی وضاحت کرتا ہے کہ آپ / بن / بلی بفر پہلے سے طے شدہ ہیں.

پرنٹ

خوبصورت پرنٹنگ کے لئے سکرپٹ کی توقع کی جاتی ہے . متوقع تقسیم کے ساتھ فراہم کردہ وگند تعریف کو درست طریقے سے نصب کیا جاتا ہے، آپ اسے اس کے طور پر استعمال کرسکتے ہیں:

vgrind لچکدار فائل

مثال

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

توقع کے کاغذات (ملاحظہ کریں دیکھیں) بھی مفید ہیں. جبکہ کچھ کاغذات توقع کے پہلے ورژن کے مطابق مطابقت رکھتی ہیں، اس کے ساتھ ساتھ منطق ابھی بھی درست ہیں اور اس کے صفحے کے مقابلے میں بہت زیادہ تفصیل میں جاتے ہیں.

کیویٹس

توسیع توقع کی کمانڈ کے نام سے ٹکرا سکتی ہے. مثلا، مکمل طور پر مختلف مقصد کے لئے Tk کی طرف سے مقرر کی گئی ہے. اس وجہ سے، زیادہ سے زیادہ متوقع حکم بھی "exp_XXXX" کے طور پر دستیاب ہیں. حکم اور متغیرات "exp"، "inter"، "spawn"، اور "ٹائم آؤٹ" کے ساتھ شروع ہوتی ہے. اگر آپ ماحول کے درمیان اس مطابقت کی ضرورت ہو تو توسیع کمانڈ کے نام کا استعمال کریں.

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

اگر آپ multispawning کی صلاحیت کو فعال نہیں کرسکتے ہیں (یعنی، آپ کا نظام نہ ہی منتخب کریں (بی ایس ڈی *. *)، سروے (ایس آر آر> 2)، اور نہ ہی برابر)، توقع صرف اس وقت ایک ہی عمل کو کنٹرول کرنے کے قابل ہو جائے گا. اس صورت میں، spawn_id قائم کرنے کی کوشش نہ کریں، اور نہ ہی آپ کو عمل کے ذریعہ عملدرآمد کرتے وقت عملدرآمد کے عمل میں چلانا چاہئے. اس کے علاوہ، آپ ایک ہی وقت میں متعدد عمل (جیسے صارف کے طور پر بھی شامل ہیں) سے توقع نہیں کرسکیں گے.

ٹرمینل پیرامیٹرز سکرپٹ پر بڑا اثر پڑ سکتا ہے. مثال کے طور پر، اگر سکرپٹ گونج لگانے کے لئے تحریر لکھا جاتا ہے، تو یہ غلطی کرے گی کہ گونگا بند ہوجائے گا. اس وجہ سے، طاقتور ٹرانسمیشن پیرامیٹرز کو ڈیفالٹ کی توقع ہے. بدقسمتی سے، یہ دیگر پروگراموں کے لئے ناپسندی کرتا ہے. مثال کے طور پر، emacs شیل "ہمیشہ کی طرح" نقشے تبدیل کرنے کے لئے چاہتا ہے: نئی لائنز گاڑی کی واپسی کے نئے لائنز کے بجائے نئے لائنوں پر نقد ہو جاتی ہے، اور گونج غیر فعال ہے. یہ ایک ان پٹ لائن میں ترمیم کرنے کے لئے emac استعمال کرنے کی اجازت دیتا ہے. بدقسمتی سے، امید ہے کہ اس سے اندازہ نہیں لگا سکتا.

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

حکموں کے قبول شدہ دلائل ایک واحد فہرست (بہاؤ کی متغیرات اور بات چیت ) میں چیلنج کئے جاتے ہیں، یہ فیصلہ کرنے کے لئے کہ وہ اصل میں ایک دلیل یا بہت سے ہیں تو فیصلہ کرنے کا استعمال کریں. اسسٹنٹ صرف صورت میں ناکام ہوسکتا ہے جب فہرست اصل میں ایک واحد دلیل کی نمائندگی کرتا ہے جس میں ان کے درمیان غیر وائٹ اسپیس حروف کے ساتھ متعدد متحرک \ n ہے. یہ کافی قابل ذکر محسوس ہوتا ہے، تاہم ایک دلیل کے طور پر سنبھالنے کے لئے ایک دلیل کو مجبور کرنے کے لئے دلیل "اینوبریس" استعمال کیا جا سکتا ہے. یہ ممکنہ طور پر مشین تیار کی توقع کوڈ کے ساتھ استعمال کیا جا سکتا ہے. اسی طرح، ایک ہی دلیل کو ایک سے زیادہ پیٹرن / اعمال کے طور پر سنبھالنے کی طاقت دیتا ہے.

BUGS

واقعی یہ پروگرام "جنسی" (یا "سمارٹ ایکیک" یا "بھیجنے کی توقع" کے لئے) نام کا ناممکن تھا، لیکن اچھی معنی (یا شاید صرف پرائیتنزم) غالب ہوگئی.

کچھ سارے نظاموں پر، جب ایک شیل پھیلایا جاتا ہے، تو اس کے بارے میں شکایت نہیں ہے کہ ٹیٹی تک پہنچنے کے قابل نہیں ہے لیکن پھر بھی چلتا ہے. اس کا مطلب یہ ہے کہ آپ کے سسٹم کو کنٹرول ٹیٹی حاصل کرنے کے لئے ایک میکانزم ہے جس کی توقع نہیں ہے. براہ مہربانی یہ معلوم کریں کہ یہ کیا ہے، اور یہ معلومات میرے پاس واپس بھیجیں.

الٹراکس 4.1 (کم از کم یہاں کے ارد گرد تازہ ترین ورژن) 00000 سے زائد وقت کے برابر وقت کو سمجھا جاتا ہے.

ڈیجیٹل UNIX 4.0A (اور شاید دیگر ورژن) اگر آپ SIGCHLD ہینڈلر کی وضاحت کرتے ہیں تو pty کو مختص کرنے سے انکار. مزید معلومات کے لئے گراؤنڈ صفحہ ملاحظہ کریں.

IRIX 6.0 پیٹی کی اجازتوں کو صحیح طریقے سے سنبھال نہیں رکھتا ہے تاکہ اگر کوئی کسی دوسرے کی طرف سے استعمال کردہ پی ایس کو مختص کرنے کی توقع کرے تو یہ ناکام ہوجاتا ہے. IRIX 6.1 کو اپ گریڈ کریں.

ٹیلیٹ (صرف SunOS 4.1.2 کے تحت تصدیق کی جاتی ہے) اگر TERM مقرر نہ ہو تو پھانسی دیتا ہے. یہ cron، at اور cgi سکرپٹ میں ایک مسئلہ ہے، جس میں ترمیم نہیں کی جاتی ہے. اس طرح، آپ کو واضح طور پر اس کو مقرر کرنا ہوگا - عام طور پر غیر مناسب طریقے سے کیا قسم ہے. اسے صرف کچھ کرنے کی ضرورت ہے! زیادہ سے زیادہ مقدمات کے لئے مندرجہ بالا شاید کافی ہے.

سیٹ این وی (TERM) vt100

ٹپ (صرف BSDI بی ایس ڈی / او ایس 3.1 3.1 i386 کے تحت تصدیق کی جاتی ہے) اگر شیل اور ہوم سیٹ نہیں کیے جائیں. یہ cron ، at اور cgi سکرپٹ میں ایک مسئلہ ہے، جو ان ماحول متغیر کی وضاحت نہیں کرتے. اس طرح، آپ کو واضح طور پر انہیں مقرر کرنا ہوگا - عام طور پر غیر معمولی قسم کی کیا قسم ہے. اسے صرف کچھ کرنے کی ضرورت ہے! زیادہ سے زیادہ مقدمات کے لئے مندرجہ بالا شاید کافی ہے.

سیٹ اینوی (SHELL) / بن / ش سیٹ ENV (HOME) / usr / local / bin

ptys کے کچھ نافذ کرنے کے لئے ڈیزائن کیا گیا ہے تاکہ پروسیسر کو فائل descriptor کو بند کرنے کے بعد دانیے 10 سے 15 سیکنڈ کے بعد کسی بھی ناپسندیدہ پیداوار کو پھینک دیتی ہے. اس طرح جیسے پروگراموں کی توقع ہے

سپوان تاریخ نیند 20 کی توقع ہے

ناکام ہو جائے گا. اس سے بچنے کے لئے، غیر انٹرایکٹو پروگراموں کو سپونا کے بجائے عمل کے ساتھ دعوت دیتے ہیں. اس طرح کے حالات قابل ذکر ہیں جبکہ، عملی طور پر میں نے اس صورت حال کا سامنا نہیں کیا ہے جس میں اس رویے کی وجہ سے واقعی ایک انٹرایکٹو پروگرام کا حتمی پیداوار کھو جائے گا.

دوسری جانب، کرایہ یونیسوس ptys فورا کسی بھی غیر محفوظ پیداوار کے بعد فائل کی تفصیل کے عمل کو بند کر دیا ہے. میں نے اسے Cray کے بارے میں اطلاع دی ہے اور وہ ایک فکس پر کام کر رہے ہیں.

کبھی کبھی تاخیر اور جواب کے درمیان تاخیر کی ضرورت ہوتی ہے، جیسے جب ٹیٹی انٹرفیس UART کی ترتیبات یا مماثلت بوڈ کی شرح کو شروع / بٹس کو روکنے کے لۓ تبدیل کر رہا ہے. عام طور پر، یہ سب ضروری ہے کہ دوسری یا دو کے لئے سونے کی جائے. جب تک ہارڈ ویئر ان پٹ حاصل کرنے کے لئے تیار نہیں ہے اس سے زیادہ مضبوط تکنیک دوبارہ کوشش کرنا ہے. مندرجہ ذیل مثال دونوں حکمت عملی کا استعمال کرتے ہیں:

"رفتار 9600 \ r" بھیجیں؛ نیند 1 کی توقع {ٹائم آؤٹ {بھیج "\ r"؛ exp_continue} $ فوری)

نیٹ ورک - کوڈ کسی بھی حکم کے ساتھ کام نہیں کرے گا جو ٹی سی کے ایونٹ لوپ میں بیٹھتا ہے، جیسے نیند. مسئلہ یہ ہے کہ ایونٹ لوپ میں، Tcl اسکرین ایونٹ ہینڈلرز سے واپسی کے کوڈ کو روکتا ہے. ایک پہلو کا دورہ نیٹ ورک میں نیٹ ورک قائم کرنا ہے. پھر حکم کے بعد فورا پرچم کو چیک کریں (یعنی نیند).

امید_ بیک منظر کا کمانڈ - وقت کے ساتھ دلائل کو نظر انداز کرتا ہے اور عام طور پر وقت کا کوئی تصور نہیں ہے.

& # 34؛ EXPECT HINTS & # 34؛

توقع ہے کہ غیر بدیہی ہوسکتی ہے. یہ سیکشن ان میں سے بعض چیزوں کو کچھ تجاویز کے ساتھ حل کرنے کی کوشش کرتا ہے.

ایک عام توقع کا مسئلہ یہ ہے کہ شیل کے اشارے کو کیسے پہچانا ہے. چونکہ یہ مختلف لوگوں اور مختلف گولوں کی طرف سے مختلف طور پر اپنی مرضی کے مطابق کر رہے ہیں، پورٹیبل خود کار طریقے سے ریلینن فوری طور پر جاننے کے بغیر مشکل ہوسکتے ہیں. ایک مناسب کنونشن صارفین کو باقاعدگی سے اظہار بیان کرتا ہے جو ان کی فوری طور پر (خاص طور پر، اس کے اختتام) ماحول متغیر EXPECT_PROMPT میں بیان کرتی ہے. مندرجہ ذیل کوڈ استعمال کیا جا سکتا ہے. اگر EXPECT_PROMPT موجود نہیں ہے تو، کوڈ اب بھی صحیح طریقے سے کام کرنے کا ایک اچھا موقع ہے.

فوری طور پر سیٹ کریں "(٪ | # | \\ $) $"؛ # پہلے سے طے شدہ فوری طور پر پکڑنے {فوری طور پر $ env (EXPECT_PROMPT)} سیٹ کریں- $ $ فوری طور پر

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

سب سے زیادہ اشارے آخر میں ایک خلائی کردار شامل ہیں. مثال کے طور پر، FTP سے فوری طور پر 'f'، 't'، 'p'، '>' اور. یہ فوری طور پر ملنے کے لئے، آپ کو ان میں سے ہر ایک کے اکاؤنٹس کا حساب کرنا ہوگا. یہ ایک عام غلطی ہے جس میں خالی شامل نہیں ہے. واضح طور پر خالی رکھو.

اگر آپ فارم X * کے پیٹرن کا استعمال کرتے ہیں تو، * وصول ہونے والے آخری چیز پر * X کے اختتام تک حاصل کردہ تمام پیداوار سے مل جائے گا. یہ بدیہی آواز لگتا ہے لیکن کسی حد تک الجھن ہوسکتا ہے کیونکہ "آخری چیز موصول ہوئی ہے" کے الفاظ کمپیوٹر کی رفتار اور دانی اور آلہ ڈرائیور کی طرف سے I / O کی پروسیسنگ کے مطابق مختلف ہوتی ہے.

خاص طور پر، انسانوں کو بڑی مقدار (ایتھراتی طور پر) میں آنے والے پروگرام کی پیداوار دیکھتے ہیں جب حقیقت میں سب سے زیادہ پروگراموں میں ایک وقت میں ایک پیداوار کی پیداوار ہوتی ہے. اس کا خیال یہ ہے کہ، پچھلے پیراگراف کے پیٹرن میں * موجودہ لائن کے اختتام پر صرف ہوسکتا ہے، اگرچہ یہ بھی زیادہ ہوسکتا ہے، کیونکہ اس میچ میں جس وقت حاصل ہوا تھا وہ تمام پیداوار تھا.

امید ہے کہ یہ جاننے کا کوئی طریقہ نہیں ہے کہ مزید پیداوار آئیں جب تک کہ آپ کا پیٹ خاص طور پر اس کے لئے نہیں ہے.

یہاں تک کہ لائن پر مبنی بفرنگ کے لحاظ سے ناواقف ہے. پروگراموں کو نہ صرف بفیرنگ کی قسم کے بارے میں کم از کم وعدہ بنائے جاتے ہیں، لیکن نظام کے اندراج آؤٹ پٹ لائنوں کو توڑ سکتے ہیں تاکہ لائنوں کو بے ترتیب بے ترتیب مقامات پر توڑ دیں. اس طرح، اگر آپ کو پیٹرن لکھنے کے دوران فوری طور پر آخری چند حروف کا اظہار کیا جا سکتا ہے، تو ایسا کرنے کا عقل ہے.

اگر آپ کسی پروجیکٹ کے آخری آؤٹ پٹ میں انتظار کر رہے ہیں اور پروگرام اس کے بجائے کسی اور کو بلاتا ہے تو، آپ اس وقت کے مطلوبہ الفاظ کے ساتھ پتہ لگانے کے قابل نہیں ہوں گے. یہی وجہ ہے کہ امید ہے کہ وقت ختم نہیں ہوگا بلکہ اس کی بجائے یہ ایک اشارہ ملے گا. اس کے بجائے استعمال کریں. یہاں تک کہ بہتر، دونوں کا استعمال کریں. اس راستے میں اگر یہ قطع ہمیشہ کے ارد گرد منتقل ہوجائے تو آپ کو لائن کو خود کو ترمیم نہیں کرنا پڑے گا.

ٹرمینل ڈرائیور کی طرف سے آؤٹ پٹ جب نیوزی لینڈ کو عام طور پر گاڑی کی واپسی، لائنفائڈ ترتیب میں تبدیل کیا جاتا ہے. اس طرح، اگر آپ ایک نمونہ چاہتے ہیں کہ واضح طور پر دو لائنوں سے ملتی ہے، تو، کہتے ہیں کہ، "print" ("foo \ nbar")، آپ کو "foo \ r \ nbar" پیٹرن کا استعمال کرنا چاہئے.

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

بلکہ ریٹرن کے ساتھ نیویگیشنوں کو دستی طور پر تبدیل کرنے کے بجائے، حل "سٹی خام" کمانڈ استعمال کرنا ہے، جو ترجمہ کو روک دے گا. نوٹ، تاہم، اس کا مطلب یہ ہے کہ آپ پکایا لائن کی ترمیم کی خصوصیات کو مزید نہیں لیں گے.

انٹرایکٹو سے خام موڈ کو اپنا ٹرمینل مقرر کرتا ہے لہذا اس مسئلہ کو پیدا نہیں ہوسکتا.

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

بدقسمتی سے، UNIX فائل کے نظام میں سکرپٹ بنانے کا کوئی براہ راست طریقہ نہیں ہے جو قابل عمل لیکن ناقابل قابل ہے. سیٹائج شیل اسکرپٹ کی حمایت کرنے والے نظام کو اس طرح سے مندرجہ بالا اس طرح کی نقل کر سکتا ہے:

معمول کے مطابق متوقع سکرپٹ (جو خفیہ ڈیٹا پر مشتمل ہے) بنائیں. اس کی اجازت 750 کروڑ (ایکس ---) کی بناء پر اور ایک قابل اعتماد گروہ کی ملکیت ہے یعنی یعنی، ایک گروہ جس کو اسے پڑھنے کی اجازت ہے. اگر ضرورت ہو تو، اس مقصد کے لئے ایک نیا گروپ بنائیں. اس کے بعد، اجازت کے ساتھ ایک / بن / ش اسکرپٹ کی تشکیل 2751 (-RWXR-S - X) پہلے ہی اسی گروپ کی طرف سے ہے.

نتیجہ ایک سکرپٹ ہے جس کو کسی بھی طرف سے قتل کیا جا سکتا ہے (اور پڑھا جائے گا). جب دعوت دی جاتی ہے، تو یہ توقع کی اسکرپٹ چلتا ہے.

# 34؛ ALSEO & # 34 دیکھیں؛

Tcl (3)، آزادی (3)
" ڈان لبس، پی پی 602، آئی ایس بی بی 1-56592-090-2، O'Reilly اور ایسوسی ایٹس، 1995 کی طرف سے " توقع کی تلاش: ایک Tcl کی بنیاد پر ٹول کٹ خود کار طریقے سے انٹرایکٹو پروگراموں کے لئے " .
"توقع ہے: انٹرایکٹوٹی کے انعقاد فٹ بیٹھتے ہیں" ڈان لیبس، سمر 1990 کینیڈا کانفرنس، این این ایم، کیلیفورنیا، جون 11-15، 1990 کی کارروائیوں کی طرف سے.
.میں "ڈون لیبس"، 1990 USENIX بڑی تنصیب کے نظام انتظامیہ کانفرنس، کولوراڈو اسپرنگس، کولوراڈو، اکتوبر 17-19، 1 99 0 کی کارروائیوں کی طرف سے "سسٹم انتظامیہ کے کاموں کو بہتر بنانے کی توقع کا استعمال کرتے ہوئے".
.میں جان اوستر ہاؤس، موسم سرما 1990 یو ایسینکس کانفرنس، واشنگٹن، ڈی سی، 22 جنوری 22، 1990 ء کی طرف سے "Tcl: ایک ایمبیڈڈ کمان کی زبان" کی طرف سے "میں امید ہے کہ: انٹرایکٹو پروگراموں کے کنٹرول کرنے کے لئے سکرپٹ" ڈان لیبلس، کمپیوٹنگ سسٹمز ، وال. 4، نمبر 2، یونیورسٹی آف کیلیفورنیا کے پریس جریدوں، نومبر 1991..میں "ریگریشن ٹیسٹنگ اور Conformance ٹیسٹنگ انٹرایکٹو پروگرام"، ڈان لبس کی طرف سے، سمر 1992 USENIX کانفرنس، پی پی 135-144، پی پی 135-144، سین انتونیو، TX، 12-15 جون، 1992. میں "کیبٹ - مل کر ایک سے زیادہ انٹرایکٹو پروگرامز"، ڈان لبس، سوفٹ ویئر - پریکٹس اور تجربے، جان ویلی اور سنز، ویسٹ سسیکس، انگلینڈ، والی وال.

23، نمبر 5، مئی، 1993. میں "Tcl ایپلی کیشنز کے لئے ایک ڈیبگر"، ڈان لبس کی طرف سے، 1993 Tcl / Tk ورکشاپ، برکلے، CA، جون 10-11، 1993 کی کارروائیوں.

AUTHOR

ڈان لبس، قومی معیار کے معیار اور ٹیکنالوجی

ACKNOWLEDGMENTS

Tcl کے لئے جان Ousterhout اور سکاٹ Paisley کے لئے شکریہ کے لئے شکریہ. امید کے خود مختار کوڈ کے لئے راب سیوے کا شکریہ.

تاریخ فائل کی توقعات کی ارتقاء کے زیادہ سے زیادہ دستاویزات. یہ دلچسپ پڑھتا ہے اور آپ کو اس سافٹ ویئر کے بارے میں مزید بصیرت دے سکتا ہے. اس میں ذکر کردہ لوگوں کا شکریہ جنہوں نے مجھے بگ اصلاحات بھیجا اور دوسری مدد دی.

امید ہے کہ امریکی حکومت کی طرف سے متوقع طور پر ڈیزائن اور عمل درآمد کیا گیا ہے اور اسی وجہ سے عوامی ڈومین میں ہے. تاہم مصنف اور NIST کریڈٹ پسند کرے گا اگر یہ پروگرام اور دستاویزات یا ان کا حصہ استعمال کیا جاتا ہے.