د لینکس / یونکس کمان تمه لري

تمه ده داسې یو پروګرام وي چې د یوې لنډیز سره سم د نورو انټرنیټ پروګرامونو سره خبرې وکړي. د سکرپٹ په تعقیب، تمه لري چې د پروګرام څخه څه تمه کیدی شي او سم ځواب باید څه وي. یو تفسیر شوی ژبه د ډیالوګ لارښوونې لپاره د څانګې او لوړ پوړ کنترول جوړښتونه وړاندي کوي. برسېره پردې، کاروونکي کولی شي کنټرول ونیسي او کله چې وغواړي نیغ په نیغه اړیکه ونیسي، وروسته د لرې کولو کنترول لپاس کې.

امید د توقع او TK مخلوط دی. دا د تمویلو او د Tk د هیلې په څیر چلند کوي. تمه کیدی شي په مستقیمه توګه C یا C ++ په Tcl کې کارول شي.

د "تمه" نوم د نظریې / انتظار کولو څخه راځي چې د یوکپ، کرمیتټ او نورو موډیم کنټرول پروګرامونو لخوا مقبولیت لري. که څه هم د تمک په څیر، تمه کیږي چې دا په ذهن کې د کوم پروګرام او دندې سره د کاروونکي سطحې قوماندې په توګه پرمخ بیايي. تمه کولی شي په ورته وخت کې د څو پروګرامونو سره خبرې وکړي.

څه تمه کولی شي

د بیلګې په توګه، دلته ځینې شیان دي چې تمه کیدونکي قوماندې کولی شي:

دلته یو شمیر دلیلونه شتون لري چې ولې دا پوست دا کارونه ترسره نه کوي. ټول د توقع سره ممکنه دي.

په عموم کې، تمه د هر هغه پروګرام پرمخ وړلو لپاره ګټوره ده چې د پروګرام او کارن ترمنځ منځګړیتوب ته اړتیا لري. ټول هغه اړین دي چې اړیکې په پروګرامیک ډول مشخص شي. تمه کیدی شي د کنترول کنټرول پرته له دې چې د کنترول کنټرول کاروونکي ته کنترول ورکړي. په ورته ډول، کاروونکي کولی شي په هر وخت کې سکرپٹ ته کنټرول بیرته راولي.

کارول

تمرین د سنډرونو د لیست لپاره cmdfile ولولئ. تمه کیدای شي په سیسټمونو کې په مستقیم ډول په نښه شوي وي چې د # ملاتړ کوي! د سکرېپټ په نښه کولو له امله د اجرا وړ په توګه پېژندل او په لپ کړه کې لومړی کرښه جوړول:

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

البته، لاره باید په سمه توگه تشریح کړي چې د ژوند تمه لري. / سیمی / محلی / بن یوازې یو مثال دی.

د CC پرچم د کوم کمیسټ څخه مخکې چې په سکرټینډ کې یې اعدام شوی وي پریږدي. قومانده باید وپوښتل شي چې د شیل له مینځه وړلو مخه نیسي. دا اختیار ممکن څو ځله کارول کیدی شي. ډیری حکمونه ممکن د سیمیکولونو سره جلا کول له یو واحد سره تطبیق شي. بولندویان په هغه ترتیب کې اعدام کیږي چې دوی یې ښکاره کوي. کله چې د استیک کارولو کار واخیستل شي، دا اختیار د مسؤلیت په توګه مشخص شوی.

د -d پرچم ځینې تشخیصوي پایلې وړې کړي، چې په ابتدايي ډول د قوماندې داخلي فعالیت لکه د تمویلو او تمرکز راپور ورکوي. دا بیرغ ورته اثر لري لکه د توقع سکرپٹ په پیل کې "exp_internal 1"، او د امید نسخه چاپ شوی.

د -D پرچم یو انټریکټ ډیبګر کاروي. د انټرنېټ ارزښت باید تعقیب شي. ډوبګر به د راتلونکی Tcl کړنلارې څخه مخکې کنترول ولري که ارزښت صفر نه وي یا که چیرې فشار فشار ولري یا د توقیف ټکی وي، یا په سکرېپټ کې نور مناسب ډگرګر راښکاره شي. کله چې د ریکیک کارولو لپاره، دا اختیار د دې لپاره مشخص شوی - Debug.

F-Flag د یوې دوتنې څخه مخکې لرې چې حکمونه یې لوستل شي. پرچغ ځان اختیاري دی ځکه چې دا یوازې ګټوره ده کله چې د # کارولو وړ وي تفتیش، د دې لپاره چې نور کم دلیلونه د قوماندې کرښې ته وړاندې شي. کله چې د استیک کارولو کار واخیستل شي، دا اختیار د فیلف مشخص شوی دی.

د ډیزاین په اساس، د قوم فایل په حافظه کې لوستل کیږي او په بشپړ ډول اعدام شوي. دا په ځینو وختونو کې د یو لین د فایلونو د لوستلو لپاره ځینې وخت غواړي. د دې لپاره چې خپل سرغړونې په سمه توګه وکارول شي، د B-flag بیرته کارول. کله چې د استیک کارولو کار واخیستل شي، دا انتخاب د بفیر مشخص شوی دی.

که چېرې "" "د فایل نوم په توګه وړاندې شي، د ځای پرځای معیاري انډول لوستل کیږي. د "فایل" څخه د لوستلو لپاره د "" / - "" لپاره کار واخلئ.

د الف-پرچم الملونه تمه لري چې په انټرنېټ سره د دوتنې څخه د دوی د لوستلو پر ځای د حکمونو لپاره لارښوونه وکړي. اعالن کول د وتلو قوماندې یا EOF په واسطه فسخه شوي. د الف-پرچم فرض کیږي که نه د کمانډ دوتنه او نه -c کارول کیږي. کله چې د استیک کارولو کار واخیستل شي، دا اختیار د غیر فعاله په توګه مشخص شوی.

- کیدای شي د انتخابونو پای پای ته ورسیږي. دا ګټور دی که تاسو غواړئ چې ستاسو د سکریپټ لپاره د اختیار په څیر دلیل وغواړئ پرته له دې چې د تمایل لخوا تشریح شوی وي. دا په کار وړل کیدای شی په # د تمې له مخې د هر ډول پرچم تعقیب مخه ونیسي. د مثال په توګه، لاندې به اصلي دلیلونه لکه د متغیر دلیل کې د سکریټ نوم په شمول پریږدي.

#! / اوسط / ځایی / بن / تمه -

په یاد ولرئ چې معمول سپوپټ (3) او اجرایوي (2) کنوانسیونونه باید په پام کې ونیول شي کله چې تاسو ته دلیلونو زیاتول! ليکه.

دوتنه $ exp_library / expect.rc که چیرې حاضر وي نو په خپل ځان سره خوړل شوی وي، مګر د N-flag بیرته کارول کیږي. (کله چې د استیک کارولو لپاره، دا اختیار د NORC په توګه مشخص شوی.) د دې وروسته سمدستی وروسته، دوتنه ~ / .expect.rc په اتومات ډول توب شوی دی، مګر تر هغه چې د الی پرچم کارول کیږي. که چیرې د چاپیریال توپیر DOTDIR تعریف شي، دا د یوه ډایرکټر په توګه ګڼل کیږي او .expect.rc له دې ځای څخه لوستل کیږي. کله چې د استیک کارولو کار واخیستل شي، دا اختیار په سم ډول مشخص شوی. دا مصرف یوازې د هیچا جریان پلي کولو وروسته ترسره کیږي.

-v د خپلې نسخې شمیرې چاپولو او د وتلو تمه لري. په استیک کې ورته پرچم، کوم چې د بیرغ نوم اوږده نوموي، کاروي.

اختیاري ارقام په لیست کې جوړ شوي او په متغیر شوي نوم argv کې زیرمه شوي او. ارګس د ارګ انډول لمړی دی.

ارګv0 د سکرپٹ یا بائنری نوم دی که چیرې هیڅ لیکنه ونه کارول شي. د بیلګې په توګه، لاندې شاخصونه د سکریپټ نوم او لومړی درې دلیلونه:

Send_user "$ argv0 [لینک $ argv 2 2] \ n"

بولندویان

تمه د اوزار قوماندې ژبه کاروي. Tcl د کنترول فضا چمتو کوي (که، لپاره، مات کړئ)، د بیان ارزونه او نور نور ځانګړتیاوې لکه د ریورسورډ او کړنلارې تعریف. بولندویان دلته کارول شوي مګر تعریف شوي ندي) مقرر، که چیرې اعدام (د Tcl حکمونه دي. تمه نور اضافي حکمونو ملاتړ کوي. تر هغه چې بل ډول مشخص شوی نه وي، امرونه خالي خالي بیرته راځي.

قوماندانی په الف باندی لیست شوی دی ترڅو دوی ژر تر ژره واقع شی. په هرصورت، نوو کاروونکو ممکن په دې ترتیب کې د سپن توضیحاتو، لیږلو، توقع، او اړیکو د لوستلو له الرې د دې پیل پیل کړي.

نږدی [-slave] [-نکسیک 0 | 1] [-i spawn_id]

اړیکې د اوسني پروسې سره تړلې کوي . ډیری سټراټيک پروګرامونه به د EF په کشف او بهر کې کشف کړي؛ په دې توګه نږدې قوي دي چې پروسې هم وژني. د الی پرچم نوم د نوم سپونیز سره تړل شوی اعالن اعالن کوي.

دواړه تمه او تمرکز به هغه مهال معلوم شي کله چې اوسنی پروسه وتړل شي او په ښکاره ډول یو څه وکړي، مګر که تاسو دا پروسه وژغورئ، ووایه، "د $ pid وژنه"، تاسو باید په ښکاره توګه نږدې غږ وکړئ .

د ایکسونیک پرچم مشخصوي چې آیا سپون شې په هره نوي شوي پروسو کې تړل شوي یا که پروسې نور هم لوړې وي. د سپون ای پرانیستلو پریښودلو لپاره، ارزښت وکاروي. A د صفر غیرمقرار ارزښت په هر نوي پروسو کې تړل سپون ځواکوي.

د خلاصې پرچم هغه غلام بندوي چې د سپون ایډ سره تړاو لري. کله چې تړل تړل کیږي نو غلام به په اتومات ډول وتړل شي که چیرې دا لا تر اوسه خلاص وي.

هیڅ اهمیت نلري چې کنکشن په ښکاره او یا واضح توګه تړل شوی وي، تاسو باید د ورته کالي د پروسې سلاټ پاکولو لپاره انتظار وباسئ. نږدی قوماندانی انتظار نلري ځکه چې داسې تضمین شتون نلري چې د پروسې تړل به د وتلو سبب شي.

دیب [0] 0 | 1]

د Tcl Debugger کنټرول تاسو ته اجازه درکوي چې د بیانونو له لارې ګام واخلئ او د بریښنا ټیکټونه ترتیب کړئ.

د کومې استدلال سره، یو 1 بیرته راستانه شوی که debugger نه وي، بل بل ته 0 بیرته راستانه شوی.

د یو دلیل سره، د Debugger پیل شوی. د 0 دلیل سره، د Debugger بندول. که چېرې 1 مباحثې د البر په نامه بیرغ لخوا وړاندې شي، نو بیګاګر ژر تر ژره پیل کیږي. که نه نو، debugger د راتلونکي Tcl بیان سره پیل کیږي.

د debug قوماندې هیڅ ډول جالونه نه بدلوي. دا د D-D پرچم سره د تمه کولو لپاره پرتله کولو پرتله پرتله کړئ.

د منحل کونکي کمانډ د کانټینډ پروسه له ترمینل څخه جلا کوي . دا په پس منظر کې روانه ده. دا پروسه د خپل پروسې ډلې ته ورکول کیږي. معياري I / O ته \ dev / null ته ليږل کيږي.

لاندني ټوټې په شاليد کې د سکرېپټ چلولو لپاره منحل شوي کاروي.

که چېرې {[اندېښنه]! = 0} له وتلو وتلو سره. . .

لاندې لپ ټاپ یو پاسورډ لوستل او بیا هر یو ساعته پروګرام پرمخ ځي چې هرکله چې دا حرکت کوي د پاسورډ غوښتنه کوي. لطفا پاسورډ وړاندې کوي تر څو تاسو یواځې یو ځل دا ټیک کړئ.

Send_user "پاسورډ" \ "expect_user -re" (. *) \ n "د {} 1 {} {که {[اندېښنه! = 0} {sleep sleep 3600، دوام} دوام وکړی شخصي_prog د بریښنالیک تمه لري:" $ expect_out " 1، تار) \ r ". . . وتون }

د شین د غیر عینک پروسس خصوصیت (&) په اړه د کانونو کارولو لپاره ګټه دا ده چې تمه کیدی شي د منازعې څخه مخکې د ټرمینل پیرامیټونه وژغوري او بیا وروسته دوی د نوي ptys سره تطبیق کړي. سره، د توقع نلري چې د ترمیم د پیرامیټونو لوستلو لپاره لدې امله چې لدې امله د ترمیم کنترول ترلاسه کیدلی شي له مخکې لرې شوی.

وتل [- مخ] [حالت]

د دې لپاره چې د دې لپاره کولو لپاره چمتو کولو یا بل ډول چمتو کولو تمه لري.

د نیونټی پرچم سبب کیږي چې راتلونکی دلیل د وتلو دسترال په توګه وکارول شي. د یوې دلیل پرته، د اوسني وتلو دسترونکي بیرته راستانه شوي.

د بې ځایه بیرغ الملونه د وتلو لپاره چمتو کولو تمه لري مګر په ریښتیا د عملیاتي سیسټم ته د کنترول څخه د راټیټولو مخه ونیسي. د کاروونکي ټاکل شوي وتلو دسترالر همدا رنګه د تمرین داخلي لاسرسی چلول کیږي. نور اضافي تمرینونه باید اجرا نشي. دا ګټوره ده که چیرې تاسو د نورو Tcl اضافو سره تمرین کولو تمرین کوئ. اوسني ژباړونکي (او د ټیک چاپیریال کې که اصلي کړکۍ) پاتې وي نو د نورو Tcl توزیع کولی شي پاک کړي. که چیرته د تمه کیدلو څخه وروسته بیا وپیژندل شي) که څه هم دا ممکن کیدی شي (، لاسي بمونه ریون نه دي.

د وتلو پرمهال، د سپک شویو پروسو ټولې اړیکې تړلې دي. تړل به د EOF په څیر وپیژندل شي د سپک شویو پروسو لخوا. بهرنی فعالیتونه نور کوم کار نه کوي کوم چې د عادي _exit (2) کړنلارې لري. په دې توګه، هغه پروسې چې د EOF لپاره نده تفتیش کولی شي دوام ومومي. ) د بیلګې په توګه، د کومې پروسې کوم سیسټم لیږل کیږي کوم چې مهم دي مهم دي، مګر دا سیستمونه پورې تړلي دي، په ځانګړي توګه مستند شوي دي (3). (سپروي شوي پروسې چې به یې دوام کوي د انټرنټ لخوا به وارث شي.

حالت (یا 0 که چېرې مشخص نه شي) د امید د وتلو حالت په توګه بیرته راستانه شوی. بهر ته په وتلو سره کله چې د لرې کولو پای ته رسیدلی وي اعدام کیږي.

exp_continue [-continue_timer]
د قوماندې بیرته ننوتلو اجازه ورکوي چې خپل ځان بیرته راستنیدلو پرځای اعدام ته ادامه ورکړي. د ډیزاین سره سم د اعلان وخت ټیکر بیا تنظیموي . Thecontinue_timer flag بیرته د بیا پیل کولو څخه ټیکر منع کوي. (د نورو معلوماتو لپاره تمه وکړۍ.)

exp_internal [-f file] ارزښت
د تشخیصی معلوماتو لیږلو لپاره نور امرونه رامنځته کوي چې داخلي توقع ولري چې که ارزښت صفر وي. دا محصول غیر معلول دی که چیرې ارزښت وي. د تشخیص په اړه معلومات هر یو کرکټر ترلاسه کوي، او هره هڅه چې د اوسني محصول سره د نمونو په وړاندې جوړه کړي.

که چیرې اختیاري دوتنه وړاندې شي، ټول عام او د Debugging Output د دې فايل لپاره لیکل کیږي) د ارزښت ارزښت ته په پام سره (. د پخوانۍ تشخیصي محصول فایل بند شوی دی.

د انفینګ پرچم د exp_internal المل کیږي چې ورکړل شوي وروستیو غیر معلوماتو دلیلونو تفصیل توضیح کړي.

توضیح کړه [args] [-i-spawn_id]
د Tcl دوتنه پیژندونکی چې د اصلي سپاون ID سره سمون لري بیرته راګرځوي. بیا د فایل فایل کوونکی کولی شي چې د Tcl د پرانیستې قوماندې لخوا پرانيستل شوي لکه څنګه چې کارول کیدی شي. (د سپن ایټ نور باید کارول نه وي. انتظار باید اعدام نشي.

د خلاصون پرچم د تمرین امرونو له لارې د لاسرسي لپاره سپاون ID پرانيزوي . A انتظار باید د سپون ایډ پر اعدام شي.

exp_pid [-i spawn_id]
د پروسې ID چې د اوسني مرحلې پروسې سره سمون لري بیرته راګرځوي. که چېرې د الف- Flag بیرته کارول کیږي، نو پید شوي بیرته راوړل شوې سپوږمۍ ID سره سمون لري.

exp_send
د لیږلو لپاره یو نوم دی.

exp_send_error
د لېږد لپاره د یو نوم دی.

exp_send_log
د لیږولو لپاره یو نوم دی.

exp_send_tty
د لیږه ښکلی لپاره یو نوم دی.

exp_send_user
د لېږدېدونکي لپاره یو نوم دی.

تکرار [[-exit] نسخه]
د دې لپاره ګټور دی چې سکریپټ د امید د اوسني نسخی سره مطابقت ولري.

د کومې دلیلونو سره، د امید اوسنۍ بڼه بیرته راګرځېدلې ده. دا نسخه ستاسو په سکرپټ کې انډول کیږي. که تاسو واقعیا پوهیږئ چې تاسو د وروستي نسخو ځانګړتیاوې نه کاروئ، تاسو کولی شئ یو پخوانی نسخه مشخص کړئ.

په دریم شمیرونو کې د ډونو لخوا جلا شوي دي. لومړی لومړی لوی شمیرل کیږي. سکرېپټونه چې د مختلفو لویو شمېرو سره د تمه کیدونکو نسخو نسخه لیکل کیږي تقریبا یقینا کار نه کوي. تغیرات یوه تېروتنه راګرځوي که لوی شمیرې سره سمون ونه لري.

دویمه شمیره ده. سکرېپټونه چې د اوسني نسخې په پرتله د کوچنیو کوچنیو شمېرو سره لیکل شوي وي کیدای شي په ځینو نوې ځانګړتیاوو پورې اړه ولري او ممکن یې ونه ځي. تغیرات یوه تېروتنه بیرته راګرځوي که لوی شمیرې سره سمون ولري، مګر سکریپټ کوچنی شمیر د روان تمرین څخه ډیر دی.

دریم هغه شمیر دی چې د نسبتا پرتله کولو کې هیڅ برخه نلري. په هرصورت، دا زیاتیدل کیږي کله چې د سافټویر توزیع ویش په هر ډول بدلون ومومي، لکه د اضافي اسنادو او اصلاحاتو لخوا. دا د هر نوی نوي نسخه په 0 کې بیا وګرځوي.

د غیرقانوني پرچم سره، تمه لرئ چې یو چاپیریال چاپ کړئ او له هغه وخته وتوانېږي چې نسخه د نیټې څخه بهر وي.

تمه لرئ [[ټولپوښتنې] د 1 بدن 1] ... [-پټونه] پنی [بوډین]
انتظار کوي تر هغه چې د یو پروسې د تولید سره سمون ونلري، د ټاکل شوې وخت موده تیر شوی وي، یا د پای د پای پای ته ورسیږي. که وروستی بدن تشه وي، نو دا به حذف شي.

د سپارښتنې څخه مخکې د امتیازاتو نمونه په مستقیم ډول د نورو نمونو څخه کارول کیږي. د وروستي تمې څخه وروسته د قومونو نمونه په مستقیم توګه د نورو نمونو څخه وروسته کارول کیږي.

که د ټول توضیحي بیان دلیلونه له یو څخه ډیر لین ته اړتیا ولري، ټول دلیلونه ممکن په یوځای کې وي "د بیرته راټولولو سره د هر کرښې د ختمولو مخه ونیسي. په دې یوه قضیه کې، د بیړیو سره سره معمول Tcl بدلیږي.

که چیرې یوه بېلګه د کلمې ایښودل وي ، نو اړونده اداره د فايل فاینټ په پای کې پلي کیږي. که چیرې یو ډول نمونې د کلیدي وخت وخت وي ، اړونده اداره وخت په وخت پلي کیږي. که چیرې د وخت په وخت کې کوم کارول نه وي کارول شوي، د وخت په وخت کې د منفي ناپاک عمل پلي کیږي. د ټاکل شوي وخت نیټه موده 10 ثانیې ده مګر کیدای شي چې ترتیب شي، د بیلګې په توګه 30 ته، د قوماندې "وخت وخت 30" ترتیب کړي. د لاتین وخت وخت ممکن د ارزښت -1 لخوا ورکړل شي. که چیرې یو سایټ د پیژندنې ډیزاین وي ، اړونده اداره په وخت یا وخت کې د دوتنې په اړه اعدام شوې.

که چیرې یو نمونه مډال وي، نو ورته بدن اعدام کیږي. د بدن نتیجه بیرته راځي (یا خالي خالي تار که چیرې کومه بڼه ونه موندل شي). په هغه صورت کې چې ډیری نمونې سره سمون خوري، لومړی یې د یوې برخې غوره کولو لپاره کارول کیږي.

هرکله چې نوی محصول راشي، دا د هرې اندازې سره پرتله کیږي چې دوی لیست شوي دي. په دې توګه، تاسو کولی شئ د یوې نیمګړتیا لپاره ازموینې وټاکئ چې وروستی شکل یې جوړ کړئ چې یو څه تضمین شوي وي، لکه سمدستي. په داسې حاالتو کې چې چټک ځواب شتون نلري، تاسو باید وخت په کار واچوئ (لکه څنګه چې تاسو په خپله په مینځ سره اړیکه لرئ).

شکلونه په دریو لارو کې مشخص شوي دي. د ډیزاین په بڼه، نمونه د Tcl د string match command سره مشخص شوي. (دا ډول ډولونه د C-shell منظم څرګندونو سره ورته ورته عموما د "نړیوال" نمونې په نوم یاديږي). د ګالګ پرچم کیدی شي د نمونو د ساتنې لپاره کارول کیدی شي چې کیدای شي بل ډول د دې د کولو بیرغونو سره سمون ولري . هر ډول طرزالعمل چې د "-" سره پیل کیږي باید دا طریقه وساتل شي. (د ټول "-" سره پیل شوي ټول سوراخونه د راتلونکو انتخاباتو لپاره ساتل شوي دي.)

د بیلګې په توګه، لاندې ټوټې د کامیاب بریښناليک لپاره ګوري. (په ياد ولرئ چې د لرې کولو په وخت کې په بل ځای کې تعريف شوي طرزالعمل په اړه غورځول کيږي.)

هيله لرئ {busy {busy busy \ n؛ exp_continue} ناکام شوي "ناسم شفر" د تړل وخت نیټه بندول}

کوټونه د څلورم شکل په اساس اړین دي ځکه چې دا یو ځای لري، چې بل ډول به د عمل څخه بیلګې جلا کړي. نمونه د ورته عمل سره (لکه دریم او څلورمه) د بیا کارونو لیست ته اړتیا لري. دا د راجستر شوي طرزالعمل ډولونو څخه کار اخیستل کیدای شي) الندې وګورئ (. د نړیوال طرزالعمل ډولونو جوړولو په اړه نور معلومات د Tcl په لارښود کې موندلی شئ.

د راجستر طرزالعمل نمونه د نخښه کول تعقیب کوي چې د Tcl د راجستینټ لخوا (د "منظم بیان" لنډیز لپاره) تعریف شوی. راجستر شوي نمونې د بیرغ سره - معرفي شوي. پخوانۍ بېلګه کیدای شي د راجستر شوي سایټ کارولو سره بیا وکارول شي لکه څنګه چې:

هيله لرئ {busy {busy busy \ n؛ exp_continue} - "ناکامي" ناسمه شفر "" د وخت وخت بندول تړل "

دواړه ډوله ډولونه "بې ځایه شوي" دي. دا پدې مانا لري چې شکلونه د ټول تار سره سمون نه لري، مګر کولی شي په هر ځای کې هرډول میچ پیل او پای ته ورسوي (تر هغه چې هر څه سره سمون لري). د کارولو پیل پیل کړئ او د پای سره سم $. په یاد ولرئ چې که تاسو د یوه پای پای ته انتظار مه کوئ، نو ستاسو ځوابونه د سوریې په مینځ کې په اسانۍ سره پای ته رسولی شي ځکه چې دوی د مصرف شوي پروسې څخه منع شوي دي. پداسې حال کې چې لاهم د سم پایلو تولیدوي، محصول کول غیر طبیعي ښکاري. لدې امله، د $ استعمال هڅول کیږي که چیرې تاسو د تار په پای کې کلیدونه تشریح کړئ.

په ياد ولرئ چې په ډيرو ايډياليو کې، ^ او $ په ترتيب سره د لينونو پيل او پاي سره سمون لري. په هرصورت، ځکه چې تمه نده لیکل شوي، دا حرفونه د معلوماتو پیل او پای سره سمون لري) د لینونو سره مخالف دي (اوس مهال د تمه شوي سمون ملا بفر کې. (په لاندې توګه د "سیسټم لیرې" په اړه یادښت وګورئ.)

د غیر مستقیم جغرافیه هغه لاملونه ښیي چې د "سمې" تار په حیث سره مل کیږي. هیڅ تفسیر د *، ^، او جوړ شوی نه دی) که څه هم د معمول Tcl کنوانسیونونه باید تر سره شي (. عامل نمونه تل تل بې ځایه شوي دي.

د یادولو پرچم د تولیداتو لوړې کچې لوړې کچې پرتله کوي ځکه چې دوی د کوچني کرکټر وو. دا بڼه اغیزه نه کوي.

پداسې حال کې چې د محصول لوستل، د 2000 څخه زیات بیتونه کولی شي د مخکې بټسونو "مجبور" وي. دا کیدای شي د فکس_m_max سره بدل شي. (په یاد ولرئ چې زیاتره لوی ارزښتونه د بېلګې ډیزاین سست کولی شي.) که چیرته د لیست لیست بشپړ ډک وي ، نو اړونده اداره اعالن کیږي که د میلمکس بایټس ترلاسه شي او نور نور ډولونه سره سمون ونه لري. د بشپړ_ بفر کلمه کارول کیږي یا نه، ایا هیر شوي کرښې د توقع کولو لپاره لیست شوي (بفر).

که چیرې د لیست لیست د کلیدي کلمې وي ، او نوپس اجازه لري) د لیرې کولو_نول قوماندې (له الرې، اړونده اداره اعدام کیږي که یواځې د ASCII 0 سره سمون ولري. دا ممکنه نه ده چې د 0 بټونو سره د نړیوالو یا راجستر شوي نمونو له لارې میچ وکړي.

کله چې یو ډول نمونه سمه کړئ (یا eof یا full_buffer)، هر ډول سمباله او پخوانۍ بې ارزښته محصول د متغیر توقع_ (بفر) کې خوندي شوی. تر 9 راجستر شوي سبسترینګ میلونه په متغیرونو کې خوندي شوي دي (1، string) د expect_out (9، string) له لارې. که چیرې د یادونو بیرغ د یو نمونې څخه دمخه کارول کیږي، د 10 سټینګونو پیل او پای پایې شاخصونه په متغیرونو کې ذخیره کیږي ) X، پیل ( او توقع لري) X، پای ( چېرته X وي عدد، په بفر کې د فرعي فرعي پوست سره مطابقت لري. 0 هغه تارونو ته اشاره کوي کوم چې د ټولو نمونو سره سمون لري او د نړیوالو نمونو لپاره او همدارنګه د راجستر شوي نمونې لپاره تولید شوي. د بیلګې په توګه، که یو پروسې د "abcdefgh \ n" تولید تولید کړي، پایلې یې د:

د "سی"

لکه څنګه چې لاندې بیانونه اجرا شوي دي:

توقع راکړه کړئ (0، سټریټ) سي ایس سي توقع expect_out (بفر) abcd

او "efgh \ n" د محصول بسته کې پاتې دی. که یو پروسس د "abbbcabkkkka \ n" تولید تولید کړي، پایلې یې د:

تمه لري - ب (b *). * (k +) "

لکه څنګه چې لاندې بیانونه اجرا شوي دي:

(0، پای) 10 set expect_out (0، string) Bbbcabkkkk set expect_out (1، پای) 2 set expect_out (1، پای) b set set د آؤٹ (0، پای) د set hope (2، پیل) 10 set expect_out (2، پای) 10 set expect_out (2، string) k set expect_out (بفر) اببباککkk

او "یو \ n" د محصول بسته کې پاتې دی. بېلګه "*" (and -re ". *") به د پروسس بڼې څخه نور اضافي لوستلو پرته د محصول بسته وغورځوي.

عموما، ملګری محصول د تمرین داخلي بفرونو څخه رد شوی دی. دا کیدی شي د نانترانسفر پرچم سره د یو نمونه وړاندې کولو مخه ونیسي. دا بیرغ په ځانګړي ډول په تجربه کې ګټور دی (او ممکن د اسانتیا لپاره د "ناتو" لپاره تجربه شي پداسې حال کې چې تجربه لري).

د سپون شې چې د سمارټ محصول سره تړلې وي (یا eof یا full_buffer) د توقع_ (spawn_id) په زیرمه کې ساتل کیږي.

د وخت وخت بیرغ د اوسني اټکل کمانډ سبب ګرځي چې د وخت وخت متغیر ارزښت پر ځای لاندې ارزښتونه د وخت په توګه کاروي.

په منظمه توګه، نمونې د اوسني پروسې څخه د محصول په مقابل کې مطابقت لري، مګر په هر بیرغ کې د نوم شوي سپاون_ید لیست څخه د محصول اعالن اعلان کوي ​​د لاندې ډولونو په مقابل کې کیږي (راتلونکې -i پورې ). سپونیدید لیست باید د سپوان_یدونو جلا جلا لیست وي یا د سپاون_یډ داسې داسې لیست ته متغیر اشاره وشي.

د بېلګې په توګه، لاندې مثال د اوسني پروسې څخه "تړل" لپاره انتظار کوي، یا "مصروف"، "ناکام" یا "ناسم پاسورډ" له سپونید څخه چې $ $ 2 لخوا یې نومول شوی.

د {$ $ پیرو 2 بوخت {د بوخت مصرف کول \ n؛ exp_continue} - "ناکامي" ناسمه شفر "" د وخت وخت بندول تړل "

د نړیوال متغیر ارزښت Any_spawn_id کېدای شي د سپونیو سمونونو سره د سمون کولو لپاره وکارول شي کوم چې د اوسني تمویل کمانډ کې د نورو جغرافیایی نومونو په نوم نومول کیږي. د الف-Flag په واسطه سپوندی تړل شوی نمونه (د مثال په توگه، بل د بل لخوا - وروسته) د هرډول تمه شوي قوماندې لپاره کوم چې د هر_سپاون_ید سره تړاو لري چمتو کیږي.

د الی پرچم ممکن یو نړیوال متغیر نوم هم ولری په کوم صورت کې متغیر د سپون ایډونو لیست لپاره لوستل کیږي. متغیر دی کله چې بدلون راشي. دا د I / O سرچینې بدلولو لاره برابروي پداسې حال کې چې کمانډ په اعدام کې دی. سپون ایډونه چمتو شوي چې دا طریقه "غیر مستقیم" سپون ایډز کې ویل کیږي.

عملیات لکه وقف او دوام ته د کنترول جوړښتونه) د بیلګې په توګه، د پرو لپاره (ترڅو په معمول ډول چلند وکړي. د قوماندې بیرته ننوتلو اجازه ورکوي چې خپل ځان بیرته راستنیدلو پرځای اعدام ته ادامه ورکړي.

دا د ښکاره څرګندونو څخه ډډه کول یا د توقع تمه کیدلو لپاره ګټور کار دی. لاندې مثال د راګینټ د اتومات کولو لپاره د یوې ټوټې برخه ده. Exp_continue له دوی څخه د دوهم تمثیل بیان لیکلو څخه ډډه کوي) که چیرې رایلین د پټنوم لپاره تاکید وکړي نو ژر تر ژره وګورئ (.

هيله لرم چې د $ ميزبانې لپاره: پټنوم (د $ کارن لپاره $) لپاره "د پټنوم ($ $ لپاره)": "expect_user -re" (. *) \ n "send_user" \ n "لېږل" $ expect_out (1، string) \ r " د «send_user» ناسم پاسورډ یا ګڼون ناسم پاسورډ یا ګڼون \ n "بهرنی" وخت نیسي {send_user "د $ کور سره د پیوستون وخت وټاکل شو \ n" ایستل "} د لیږلو لپاره د {send_user \" ایښنالیک ناکام شو: $ expect_out (buffer) "خارج" بیا $ فوری

د بېلګې په توګه، لاندې برخې کولی شي د یو کاروونکي سره مرسته وکړي چې د هغه متقابل عمل لارښوونه وکړي چې دمخه یې په بشپړ ډول کارول کیږي. په دې حالت کې، ټرمینل خام موډر ته سپارل کیږي. که چیرې کارن "+" فشار وکړي، یو متغیر زیات شوی دی. که چیرې فشار "فشار" ته وسپارل شي، ډیری بیرته ستنې بیرته پروسې ته لیږل کیږي، ښایي دا په ځینو طریقو غلا کړي، او "زه" کاروونکي ته اجازه ورکوي چې له پروسې سره په اغیزمنه توگه، د سکرېپټ څخه په اغیزمن ډول کنټرول غلا کړي. په هره قضیه کې، Exp_continue د اوسني عمل د پلي کولو وروسته اوسني تمه کولو لپاره د نمونو سره سمون لري.

د ټیټ خام د امید expect_after {-i $ user_spawn_id "p" {send "\ r \ r \ r"؛ exp_continue} "+" {incr foo؛ exp_continue} "i" {خبرې اترې؛ exp_continue} "وتل" وځنډولئ "

د ډیزاین په واسطه، توضیح کول د وخت ټاکونکي ټیکر بیا راګرځوي . ټیکر بیا ندی پیل شوی، که چیرته بیرته تادیه د -continue_timer flag سره وغوښتل شي.

expect_after [expect_args]
پرته له دې چې د توقع او تمه دواړه دواړه سره سمون ولري، د توقع لپاره کارول کیږي. د لا زیاتو معلوماتو لپاره د سپارښتنې وړاندې مخکې وګورئ.

expect_background [expect_args]
ورته توضیحات لکه څنګه چې تمه کیږي ، مګر دا سمه ده. شکلونه معاینه کیږي کله چې نوی انټرنیټ راشي. د وخت وخت او ډیزاین د بیکار توقع کولو لپاره بې اساسه دي او په خاموشۍ سره بې برخې شوي. که نه نو، د توقع د بیرغ قومانده تمه لري او تمه لري چې توقع د توقعاتو په څیر ډولونه.

کله چې تمه کیږي د بیارغوني فعالیتونه ارزول کیږي، د ورته سپون id لپاره پس منظر پروسس بند شوی دی. کله چې عمل بشپړیږي د پس منظر پروسس غیر فعال دی. پداسې حال کې چې د پس منظر پروسس بند شوی، ممکن دا یو ممکن وي (مخکینۍ بڼه) په ورته سپاون ID کې تمه کړي .

دا امکان نلري چې تمه ترسره کړي پداسې حال کې چې د توقع د بیکارډ نانځل شوی وي. expect_background د ځانګړو سپون ایډ لپاره حذف شوی وي د نوی امید_ بیکارډ اعلان کول د ورته سپن ID سره. د تمه کیدلو لپاره د بې ځایه بڼې توضیح کول د سپنج شفر ایډیټ په پس منظر کې د نمونو سره سمون سره توان لرې کړئ.

expect_before [expect_args]
ورته توضیحات لکه څنګه چې تمه کیږي ، مګر دا سمه ده. د وروستی تمه کیدلو څخه د پیٹرن عمل عملونه د ورته سپاون ID سره په مستقیم ډول د هر ډول راتلونکو حکمونو سره اضافه شوي دي. که چیرې یو نمونه مډال وي، دا درملنه کیږي لکه څنګه چې دا د تمې په قوماندې کې مشخص شوی، او اړونده اداره د تمې قوماندې په شرایطو کې اعدام کیږي. که د دواړو خواوو توقع او تمرین سره سمون ولري، د توقع څخه مخکې تمه کیدی شي.

که چیرې کومه نمونه مشخص نشي، د سپن آدر د هیڅ ډول نمونو لپاره ندی لیدل شوی.

که چېرې د A - Flag په واسطه مخ په غوړ شوی وي، تمه لري مخکې نمونې د سپن ایټ په مقابل کې لوبه کوي چې په هغه وخت کې تعریف شوي چې د توقیف تمه یې اعدام شوې وه (مګر کله چې دا نمونه سره سمون ونه لري).

د انفو پرچم د تمه کولو سبب کیږي ځکه چې بیرته راستنيدو اوسنیو ځانګړتیاو ته بیرته راستون شي. په ډیفالټ کې، دا د اوسني سپن ایډ په اړه راپور ورکوي. د اختیاري سپای پېژند مشخصات د سپونر ID په اړه د معلوماتو لپاره ورکول کیږي. د مثال په توګه

expect_before -info -i $ پرو

د ډیری یو سپن آفر ځانګړتیا کې به ورکړل شي. پرچغ غیر مستقیم مستقیم سپونیزونه چې د غیر مستقیمه توضیحاتو څخه راځي راځي.

د سپون ایډ ځانګړتیا پر ځای، د "-all" پرچم به "-fofo" د ټولو سپد مرستو په اړه راپور ورکړي.

د انفو پرچم تولید د توقع لپاره دلیل په توګه کارول کیدی شي.

expect_tty [expect_args]
د توقع په څیر دی مګر دا توري د / dev / tty څخه لوستل کیږي (د کاروونکي کلیدی ستروکس). په ډیفالټ کې، لوستل په پکاوډ موډل کې ترسره کیږي. په دې توګه، لینونه باید د بیرته ستنېدو سره پای ته ورسیږي ترڅو د دوی لیدلو تمه وکړي. دا کیدای شي د سټیټ له الرې بدل شي (لاندې د سټیټ کمانډ وګورئ).

expect_user [expect_args]
د تمه په څیر دی مګر دا د سټینډ څخه حروف (لکه د کارن څخه د کیسټسټروکس) لوستل کوي. په ډیفالټ کې، لوستل په پکاوډ موډل کې ترسره کیږي. په دې توګه، لینونه باید د بیرته ستنېدو سره پای ته ورسیږي ترڅو د دوی لیدلو تمه وکړي. دا کیدای شي د سټیټ له الرې بدل شي (لاندې د سټیټ کمانډ وګورئ).

رنګ
یو نوی بهیر رامنځته کوي. نوې پروسې د اوسني تمویل پروسه یوه سمه کاپي ده. په بریالیتوب سره، رنګ د نوي (ماشوم) پروسې ته راستانه کیږي او د ماشوم پروسې پیژندنه د مور پروسی ته بیرته راستنیږي. په ناکامي (په غیر مستقیم ډول د منابعو نشتوالی، د بیلګې ځای، د ځای ځای، یادښت)، د پلار راستنیدنې -1 د والدین پروسې ته ، او د ماشومانو پروسیجر نه رامنځته کیږي.

د ګومارل شویو پروسو څخه د وتلو قوماندې څخه، د اصلي پروسې په څیر بهر کیږي . د ګومارل شوي پروسیجرونو اجازه دا ده چې د لینک فایلونو ته ولیکئ. که تاسو ډیری پروسو کې د ډیګینګ کولو یا لیګ کولو غیر فعال نه کړئ نو پایلې یې ناڅاپي وي.

ځینې ​​پیټ پلي کول کیدای شي د ډیرو لوستونکو او لیکوالانو لخوا په ناڅاپي توګه سره مخ شي، حتی په سمه توګه. له دې امله، د سپکو پروسو څخه دمخه دا رنګ غوره دی .

منځګړتوب [د لمړی تار 1] ... [سرلیک [بوډین]]
د کاروونکي اوسنۍ پروسې کنټرول ورکوي، نو ځکه چې کیسټسټک اوسني پروسې ته لیږل کیږي، او د اوسني پروسې Stdout او سټراډر بیرته راستانه شوي.

د String-body جوڑی کیدای شي د دلیلونو په توګه مشخص شي، په کوم حالت کې بدن اعدام کیږي کله چې ورته تار داخل شي. (په ډیزاین سره، دا سیسټم اوسني پروسې ته ندي لیږل شوی.) د ژباړونکي بولندوی فرض شوی، که وروستی بدن ورک شي.

که ټول د سټراټيژی بیان لپاره مباحثې له یو لین څخه ډیرې ته اړتیا ولري، ټول ټکي شاید "په زړه پوري" کې وي لکه څنګه چې د بیارغاونې سره د هر کرښې د ختمولو مخه ونیسي. په دې یوه قضیه کې، د بیړیو سره سره معمول Tcl بدلیږي.

د بېلګې په توګه، لاندې کمانډ د لاندې تار د بدن جوړو سره تعامل کوي: کله چې ^ Z فشارول کیږي، تمه کیدی شي معرفي شي. (د ریټریج بيرغ د ترمیم طریقې بیرته راګرځوي.) کله چې ^ A فشارول کیږي، کاروونکي ګوري چې "تاسو کنټرول-A ټیکلی" او پروسې یو ^ A. کله چې $ فشار واچول شي، کاروونکي نیټه ګوري. کله چې ^ C فشار ورکړای شي، تمه کیږدي. که "foo" داخل شي، کارن کار "بار" ګوري. کله چې فشار واچول شي، د تمایل توقع ژباړونکي سره روانه ده.

CTRLZ \ 032 سیالۍ وکړئ {-reset $ CTRLZ {د وژنې وژنه - پایپټ [پوټ]] \ 001 {send_user "تاسو یو کنټرول ټیکلی - A \ n"؛ "\ 001"} $ {send_user "ولېږئ" نیټه [د بڼه بڼه [د ثانیو ثانیو]]. "} \ 003 له foo {send_user" bar "}}}

د تار په بدن کې جوړه، تارونه په ترتیب سره مل کیږي چې دوی د دلیلونو په توګه لیست شوي دي. هغه بریښې چې په جزیره توګه سره لوبه د راتلونکی راتلونکی تمه کیدلو اوسنی پروسې ته ندي لیږل شوي. که چیرته هغه توريونه وروسته بیا وځنډول شي داسې ښکاري چې نور د امکان وړ نه وي، یوازې د تار برخه به هغه بهیر ته واستول شي چې ممکن ممکن بل بل میچ پیل نشي. په دې ډول، هغه تارونه چې د جزايي سیالیو فرعي زیرمې لري وروستی وروسته سره سمون لري، که اصلي ډیزاین چې په لوبه کې پای ته رسیږي.

د ډیزاین په واسطه، د ځنګلونو کارتونو سره د سیسټم سمون سمون دی. (په مقابل کې، د تمه کولو قومانده د ډلبندۍ ډوله نمونه د ډیفالټ په واسطه کاروي.) د انډ بیرغ ښايي د ډولونو د ساتنې لپاره کارول کیدی شي چې کیدای شي په بل ډول د اړیکو بیرغونه ترسره کولو سره سره سمون ولري. هر ډول طرزالعمل چې د "-" سره پیل کیږي باید دا طریقه وساتل شي. (د ټول "-" سره پیل شوي ټول سوراخونه د راتلونکو انتخاباتو لپاره ساتل شوي دي.)

دا بیرغ السلیک کوي چې تار د راجستر طرزالعمل طرزالعمل په توګه تعبیر شي. په دې حالت کې، مطابقت لرونکي فرعي ذخیره په متغیر سره د منځګړیتوب سره ذخیره شوي دي لکه څنګه چې تمه یې د متغیر توقع کې د محصول محصولات. د سروې پرچم ورته ملاتړ کیږي.

د بیلګې په توګه د فاکس په پای کې یو عمل تعامل کوي. د بیلې بیلې بیلګې کېداى شي د بیرغ السلیک الره تعقیب کړي، په کوم صورت کې دا سره مل کیږي که چیرته د محصول لیکلو په وخت کې د پیژندل شوی پیژندل شوی وي. د ډیزاینفف اقدام عمل "بیرته راستنیدونکی" دی، ترڅو د EOF په اړه په ساده ډول بیرته راستنیدنه وکړي.

د وخت نمونه یو وخت (په ثانیو کې) معرفي کوي او هغه عمل چې د ټاکل شوي وخت لپاره هیڅ ډول لیکل شوي ندي وروسته له هغې اعدام شوي. د وخت وخت طرزالعمل په وروستي وروستي مشخص شوي پروسیجر کې پلي کیږي. د اصلي وخت وخت نشته ځانګړي متغیر "وخت" (د تمې قوماندې لخوا کارول کیږي) پدې وخت کې هیڅ اغیزه نلري.

د بیلګې په توګه، لاندې بیان د کارولو کاروونکو لپاره کارول کیدی شي کوم چې د یو ساعت لپاره هیڅ څه نلري مګر څوک چې لاهم د سیستم سیسټم پیغامونه ترلاسه کوي:

سره اړیکه ونیسئ $ $ user_spawn_id د وخت وخت 3600 بیرته راستنیدونکی \ $ spawn_id

که چیرې نمونه کلیدي کلمه وي ، او نوپس اجازه لري (د لرې کولو لپاره د لینکونو له لارې)، اړونده اداره اعدام کیږي که یواځې د ASCII 0 سره سمون ولري. دا ممکنه نه ده چې د 0 بټونو سره د نړیوالو یا راجستر شوي نمونو له لارې میچ وکړي.

د پرچم -ویریټ سره یو ډول نمونه پریښودل سبب ګرځي چې متغیر منځګړتوب (spawn_id) د سپونید سره وټاکل شي کوم چې د بېلګې (یا eof) سره سمون لري.

عملیات لکه وقف او دوام ته د کنترول جوړښتونه) د بیلګې په توګه، د پرو لپاره (ترڅو په معمول ډول چلند وکړي. په هرصورت د بیرته راستنیدلو الملونه د دې غوښتونکي هیواد ته د راستنېدو لپاره د یو بل سره اړیکه لري، پداسې حال کې چې Inter_return په خپل کال کې د بیرته ستنیدو المل کیږي. د مثال په توګه، که "پیرو فو" د اتل تړون په نوم یادیږي کوم چې وروسته یې عمل inter_return اعالن کړی ، پیرو foo به راشي. (دا پدې مانا ده چې که چیرې د منځګړیتوب غوښتنه وکړي ژباړونکي په متقابل ډول د بیرته ستنیدنې بهیر به دوام وکړي ترڅو دوام ومومي، پداسې حال کې چې Inter_return به د دې سبب شي چې بیرته خپل کال ته راشي.)

د تعامل په جریان کې، خام موډل کارول کیږي ترڅو ټول حرفونه اوسنی بهیر ته انتقال شي . که اوسنی پروسې د دندې د کنترول نښې نښانې ندی راولي، نو دا به ودریږي که چیرې د سټینګ سګنلټر واستول شي) په اصل کې ^ Z (. د بیا پیلولو لپاره، لا هم یو سریال لیږئ (لکه د "وژ -CONT" لخوا). که تاسو واقعیا غواړئ چې د SIGSTOP داسې ډول بهیر ته ولیږئ) د ^ Z (لخوا، په لومړی ځل بیا سپاینګ غور وکړئ او بیا ستاسو پروګرام چلولو. له بلې خوا، که تاسو غواړئ چې خپل ځان ته تمه وکړئ SIGSTOP واستوئ، لومړی د ژباړونکي (شاید د فرار څخه لوښه کارولو سره کار واخیستل شي)، او بیا ^ ز.

د String-Body جوڑی د ژباړونکي د ننوتلو څخه ډډه کولی شي او په فعاله توګه د قوماندې اجرا کولو لپاره د شتمنډ په توګه کارول کیدی شي. پخوانی ټرمینل موډل کارول کیږي پداسې حال کې چې د تار د بدن جوړه جوړې شوې ده.

د سرعت لپاره، اقدامونه په ڈیفالډ سره د خام موډل تطبیق کوي. د ریټری پرچم دا ټرمینل بیا هغه طریقه بدلوي چې مخکې له دې چې د سایټ تړون ترسره شوی وي (په عموم ډول، پخلی شوی طریقه). يادونه وکړئ چې هغه توريونه داخل شوي کله چې موډل بدل شي ښايي ښايي له لاسه ورکړي (په ځينو سيسټمونو کې د ټرمينل چلونکي ناسمه بڼه). د رییس کارولو یوازینی دلیل دا دی که ستاسو عمل په پخه شوي موډل کې د چلولو پورې اړه لري.

یو بل بیرغ هغه توريونه لیږل چې د پروسې سره بیرته لاندې طرزالعمل سره سمون لري چې دوی یې هر یو لوستل لوستل کیږي. دا ممکن ګټور وي کله چې کاروونکي اړتیا ولري چې د جزای ډول ډول ډولونو څخه نظریات وګوري.

که چیرې یو نمونه منع کیدلای شي مګر په پای کې له میچ سره پاتې کیږي، توريونه د پروسې بهیر ته لیږل شوي. که چیرې د پروسې بهیر بیا دوی خوشې کړي، نو کاروونکي به دوه ځلې وګوري. فکر کوالی شي په داسې شرایطو کې یوازې مناسب وي چیرته چې کاروونکي د دې نمونو بشپړولو لپاره امکان نلري. د مثال په توګه، لاندې نقل د Rftp څخه دی، د ریورسسوف فایل سکرپٹ، چیرته چې کاروونکي هڅوي چې ~ g، ~ p، یا ~ l داخل کړي، ترلاسه کړي، وساتئ، یا یې په وروستي ډایرکټر کې لیست کړئ. دا د فرعي فایپ د قوماندې څخه ډیر لیرې دي، کاروونکي احتمال نلري چې د بل چا لخوا تعقیب شي، په غلطي پرته، په قضیه کې، دوی به ممکن د پایلې په توگه وڅیړي.

د اړیکو (تماس - g {getcurdirectory 1} -chocho {gocurdirectory 0} -cho {pccirectirectory}} سره اړیکه ونیسي.

د نوبل پرچم هغه توريونه لیږلي چې د محصول پروسې ته لاندې نمونې سره سمون لري لکه څنګه چې حرفونه لوستل کیږي.

دا ګټوره ده کله چې تاسو غواړئ چې یو پروګرام بیرته خپل شکل بیرته وغورځوئ. د بیلګې په توګه، لاندې کیدی شي د څارنې لپاره د دې لپاره وکارول شي چې یو څوک ډبل وي (د Hayes-style modem). هر ځل "ATD" لیدل کیږي چې سکریپټ نور پاتې لیکي لیکي.

د پروپټن -nobuffer -re "(. *) \ r" بیرته $ $ لګول "[د بڼه بڼه [د ثانیو ثانیه]]: dialed $ interact_out (1، string)"} سره اړیکه - کوونکی "atd" lognumber

د خبرو اترو په جریان کې، د log_user پخوانی کار سترګې پټې شوې. په ځانګړې توګه، د اړیکو لیږد به خپل محصول په نښه کړي (معیاري محصول ته لیږل کیږي) ځکه چې دا اټکل کیږي چې کارن نه غواړي په پټه توګه په خبرو اترو کې برخه واخلي.

دا پرچم د کوم کلیدي بدن جوړه جوړه کوي چې د اوسني پروسې پای ته ورسیږي. دا کیدی شي ګټور وي، د بیلګې په توګه، کله چې د میزبان سره معامله وکړي چې د ټیکټین ناستې په ترڅ کې ناپوه شوي لیږل استول کیږي.

د ډیزاین په بڼه، د خبرو اترو تمرین کوونکی د دې لپاره تمه لري چې د توقیف لیکلو او د تمه کولو پروسې پخپله ستډیټ لیکلي وي. د " ګوګل " لپاره (د "کارن" لپاره) د کاروونکي نظر د کارونکي په توګه جوړوي چې پروسې یې د هغې له دلیل سره (د کومې شونې id (باید باید وي).

دا د دوه تړل شویو پروسو ته اجازه ورکوي چې پرته له واضح ښکاره لوپ څخه کار واخلي. د Debugging په مرسته کې، د تشخیص تمه کول تل د سټیرر ته ځي (یا د ځینې لیګنګ او د Debugging معلومات لپاره Stdout). د عین دلیل لپاره، د ژباړونکي قوماندانی به د سټینګی څخه په سمدستي توګه ولوستل شي.

د بېلګې په توګه، لاندې ټوټې د ننوتنې پروسې رامینځته کوي. بیا وروسته د کاروونکي ډیزاین (نه ښودل شوی)، او په پایله کې دواړه دواړه سره یوځاې سره نښلوي. البته، هر ډول پروسې ښايي د ننوتلو لپاره بدل شي. A shell، د مثال په توګه، د کاروونکي د حساب او پټنوم سپارل پرته پرته کار ته اجازه ورکوي.

د سپن د ننوتنې سایټ ننوتل $ spawn_id سپون ټپ موډیم # له یوزر څخه بیرته ډایلیک کړئ

د څو پروسو لپاره د محصول لیږلو لپاره، د هر سپن د لیست لیست لیست چې د انټرنټ پرچم لخوا وړاندې کیږي. د تولید سپون ایډز د یوې ډلې لپاره انټرنټ کیدای شي د سپون ایټ لیست لخوا ټاکل شي چې د یو انټرنټ پرچم لخوا وړاندې کیږي. (دواړه پوهه او ټیټ کول ممکن د لیټ کمانډ کې د الف - پرچم لیست په لیست کې لیست واخلي، پرته له دې چې any_spawn_id په اړیکو کې معنی ندي.) ټولې لاندینۍ جغرافیاوې او تارونه (یا نمونې) د دې بلې برخې څخه بل ته لیږل کیږي - د انډرن بيرغ څرګندېږي. که چیرته نښې نلري، آؤٹ پدی معنی ده "- $ user_spawn_idputput -put". (په ورته ډول، د نمونو سره چې نلري نلري.) که چیرې یو تفتیش مشخص شوی وي، نو دا د user_spawn_id $ ډالر لوړوي. که چیرې دویمه برخه وټاکل شي، نو دا $ سپونیز_ید لوړوي. اضافي تغیرات ښايي بیرته مشخص شي.

دوه تخصیص انټرنیټ پروسیجرونه چې د دوی محصولاتو لپاره $ spawn_id او $ user_spawn_id ټاکل شوي (بیرته راګرځیدلي). که چیرې د غیرترینګ پرچم سره د یو انټرنټ بیرغ ښکاره شي، د دې پروسې لینکسونه رد شوي دي.

دا پرچم د اوسني سپونیز لپاره بدیل معرفي کوي کله چې بل هیڅ نه وي او یا هم تجهیزات بیرغ کارول کیږي. د AI پرچم د الف - پرچم معنا لري.

دا ممکنه ده چې هغه پروسې بدل کړي چې د غیر مستقیم سپډو مرستو په کارولو سره ورسره مینځل کیږي. (غیر مستقیم سپون آیدونه د تمه شوي قوماندې برخه کې بیان شوي.) د غیر مستقیم سپایډونه ممکن د -i، -u، -put، یا د بیرغونو سره مشخص شي.

ژباړونکي [دليل]
د کاروونکي المل کیږي چې په اتوماتيک توګه د تمه کولو او Tcl حکمونو لپاره هڅول کیږي. د هر قوماندې پایله چاپ شوې.

عملیات لکه وقف او دوام ته د کنترول جوړښتونه) د بیلګې په توګه، د پرو لپاره (ترڅو په معمول ډول چلند وکړي. په هرصورت بیرته ستنیدونکي المل کیږي چې ژباړونکي خپل کال ته بیرته راستانه کړي، پداسې حال کې چې Inter_return ژباړونکي المل کوي ترڅو بیرته خپل غوښتونکي بیرته راګرځوي. د مثال په توګه، که "پرو foo" ژباړونکي نومیږي کوم چې بیا عمل عمل inter_return ، پیرو foo بیرته راستون شي. کوم بل قوماندې د ژباړونکي سبب ګرځي چې د نویو قوماندې لپاره لارښوونې ته دوام ورکړي.

په ډیفالټ کې، په چټکۍ کې دوه انټرنټونه شامل دي. لومړنۍ ضمیمه د ارزونې ډیزاین بیانوي (مثلا، څومره وخت Tcl_Eval ویل شوی). دویمه ضمیمه د Tcl تاریخ پیژندونکی ده. چټکۍ د پروسیجر د تعریف کولو په اساس ترتیب کیدی شي چې "prompt1" نومېږي، کوم چې د بیرته ستنیدو ارزښت راتلونکی چټک کیږي. که یو بیان د پرانستې حوالې، پارنس، بټیسس، یا برکټونو، یو ثانوي تعامل ولري (په default کې "+>") په نوي لائن کې خپور شوی. ثانوي تعقیب کیدای شي د "پروپټ 2" په نامه یو پروسیجر تعریف کولو سره ترتیب شي.

د ژباړونکي په جریان کې، پخه شوي موډل کارول کیږي، حتی که چیرې د دې ټیلیفون خام موډی کاروي.

که چیرې سټینډ بند شي، ژباړونکي بیرته راځي که چېرې د بیرغ کارول وکارول شي، په کوم حالت کې راتلونکی استدلال کیږي.

log_file [args] [[-a] دوتنه]
که چېرې د دوتنې نوم چمتو شي، log_file به د دې ناستې لیږد ریکارډ (په هغه وخت کې پیل شي) په فایل کې. log_file به د ثبت کولو مخه ونیسي که چیرې هیڅ دليل نه وي ورکړل شوی. د مخکینۍ لوړې دوتنې تړل کیږي.

د نوم د ځای پرځای، د Tcl فایل پېژندونکی کیدای شي د پرانیستلو یا پرانیستې پرچغ کارولو لخوا چمتو شي. دا د سپون کمانډ ته ورته دی. (د نورو معلوماتو لپاره سپون وګورئ.)

د الف- پرچم ځواکونه په نښه کوي چې د log_user کمانډ لخوا فشار راوړل شوی.

په ډیفالټ کې، د log_file قومانده د دوی له مینځه وړلو پرځای زاړه فایلونو سره ضمیمه کوي، د دې اسانتیا لپاره چې د لوګ کولو بندولو بندولو او په یو ناستې کې څو ځله په وړو کې وتوانیږي. د فایلونو د ټیټولو لپاره، د نیپ اپن پرچغ کارول.

د انوګن پرچم د log_file سبب ګرځی ترڅو د بیرته وروستي غیر معلوماتو دلیلونو توضیحات بیرته راشي.

log_user -fofo | 0 | 1
په ډیفالټ کې، د Stdout لپاره د خبرو اترو لیږلو / تمه کیدلو ته اړتیا لري (او که چیرې پرانیستل شي). د Stdout لپاره لوګنګ د "log_user 0" د قومندان لخوا معلول شوی او د "log_user 1" لخوا بیا فعال شوی. د ليففايل ليکي کولو بدله نه ده.

د انو پرچم د log_user سبب کیږي چې ورکړ شوي وروستي غیر معلوماتو دلیلونه تشریح کړي.

match_max [-d] [-i spawn_id] [size]
د بسته بندي اندازه (د بیتونو په بڼه) د داخلي توقع له لارې کارول کیږي. د اندازې د اندازې سره، اوسنی اندازه بیرته راګرځیدلی.

د -d پرچم سره، د ډیزاین اندازه ټاکل شوی. (ابتدايي پیژندنه 2000 دی.) د -i پرچم سره، دا اندازه د نوم سپوم ایډ لپاره ټاکل شوی، بلکه دا د اوسنی پروسې لپاره ټاکل شوی دی.

پورته کول [- # spawn_id] [- # spawn_id] [...] پروګرام [args]
د اوسني تمویل پروګرام په ځای "پروګرام ارقام" اعالن کوي، کوم چې فسخ کوي. یو نخښه حاکم دلیل د قوماندې نوم مخې ته یو هایفین ځواک کوي لکه څنګه چې دا د ننوتۍ شیل وه. ټول سپوان_یډونه بند دي مګر د هغو کسانو لپاره چې د دلیلونو په توګه نومول شوي. دا د نوم نومول شوي دوتنې پیژندل شوي دي.

سپونډیډونه د میثاق لپاره د نوي پروګرام لپاره د پیژندونکي د فایل کولو لپاره نقشه شوي. د مثال په توګه، لاندې لینس شطرنج کوي او د اوسني پروسې لخوا کنټرول ته اجازه ورکوي - د شطرنج ماسټر ووایی.

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

دا د "متقابل" په پرتله ډیر اغیزمن دی، په هرصورت، دا د پروګرام شوي تعامل کولو وړتیا قرباني کوي ځکه چې د توقع پروسه نور کنترول نلري.

په یاد ولرئ چې هیڅ کنترول نلري. لدې امله، که تاسو د معیاري انفش کول منحل یا سمبال کړئ، هغه پروګرامونه چې د کار کنټرول (گولونه، ننوتل، او نور) به سم کار ونه کړي.

همیشه [-d] [-i spawn_id] [ارزښت]
دا تشریح کوي چې ایا متحد باید د سپړلو پروسو له محصول څخه ساتل یا پټ شي. که ارزښت صفر وي، مساوات له مینځه تللی شي، بلکه دا له مینځه نه دی. د ارزښت ارزښت نه لري ، اوسنی ارزښت بیرته راګرځیدلی.

د -d پرچم سره، د منل شوي مساوي ارزښت ټاکل شوی. (ابتدايي ڈیفالټ لومړنی دی، یعنې ورته والیت ندی راځي.) د -i پرچم سره، د متحد ارزښت د نوم سپوم ایډ لپاره ټاکل شوی، بلکه دا د اوسني پروسې لپاره ټاکل شوی دی.

لیرې کوډونه [-d] [-i spawn_id] [ارزښت]
دا په ګوته کوي چې آیا سړي د ساتلو پروسې څخه ساتل شوي یا لیږدول شوي یا مخکې له هغې چې د متغیر توقع یا منفي تمرکز کې ساتل یا ساتل. که ارزښت 1 وي، نوپس لیرې کیږي. که ارزښت وي 0، نوکسونه لرې نه دي. د ارزښت ارزښت نه لري ، اوسنی ارزښت بیرته راګرځیدلی.

د -d پرچم سره، د اصلي قیمت ټاکل کیږي. (لومړنی پیفالټ لومړنی دی، د بیلګې په توګه، نپلونه لیرې شوي.) د -i پرچم سره، ارزښت د نوم سپون ایډ لپاره ټاکل شوی، بلکه دا د اوسني پروسې لپاره ټاکل شوی دی.

تمه لري چې نالونه لیرې شي، تمه به نالره بڼې د لوډ او Stdout لپاره ثبت کړي.

[-flags] تار وليږئ
اوسنۍ پروسې ته سټراټیږئ. د مثال په توګه، قوماندې

"سلام نړۍ \ r" واستوئ

حروف، helloworld اوسني بهیر ته لیږل کیږي. (په Tcl کې د printf -like قوماندې) د بڼه په نوم یادیږي (چې کولی شي په زړه پورې پیچلې ډیزاین جوړ کړي.)

توريونه په سمدستي توګه لیږل کیږي که څه هم د لیکل شوي بڼې سره پروګرامونه به د بیرته راستنیدونکي کارکونکي لیږلو پورې کرکټر ونه لوستل شي. د بیرته راستنیدونکی کرښه د "\ r" نښه ده.

بیرغ السلیک ځواکونه راتلونکی دلیل د بیرغ په ځای د بیرغ په توګه تعبیر کیدلی شي. هر ډول سوریه د "-" لخوا مخکې کیدای شي یا دا چې دا په حقیقت کې یو بیرغ په څیر ښکاري. دا د متغیر ډیزاینونو مشخص کولو لپاره یو باوري میکانیزم چمتو کوي پرته له دې چې د غیرقانوني جغرافیاو په څیر تکرار شوي وي. (د ټول "-" سره پیل شوي ټول سوراخونه د راتلونکو انتخاباتو لپاره ساتل شوي دي.)

د الف- پرچم اعالن کوي ​​چې دا سټیټ نوم سپنج_ید ته لیږل کیږي. که سپوندی _ user_spawn_id دی، او ترمیم په خام موډر کې دی، په تار کې نوي لیکونه بیرته راستنیدونکي ژباړل شوي - نوي لائن ترتیبونه په داسې حال کې چې دوی داسې ښکاریږي چې ترمیم په پکاو موډل کې وو. د بل پلو پرچغ دا ژباړه غیر فعالوي.

بېځايه بيرغ نالور توريونه (0 بايټونه) راولي. د ډیزاین په اساس، یو سست ولېږل شي. یوه انټرنټ ممکن د ځنډ سره سم تعقیب کړي څو دا معلومه کړي چې څومره سستونه لیږل کیږي.

د بریک پرچم د وقف حالت حالت رامنځته کوي. دا یوازې احساس کوي که چیرې سپون ایټ د "سپون-خلاص" له لارې پرانیستل شوي ټیتیټ وسیله وښيي. که چیرې تاسو د پروسې په څیر یو پروسې مصرف کړی، تاسو باید د تشناب تولید لپاره د ټیپ کنوانسیون څخه کار واخلئ.

د بیوزلو ځواکونو تولید "ورو ورو" ته لیږل کیږي، له دې امله د عام وضعیت څخه مخنیوی وکړي چیرې چې کمپیوټر کمپیوټري بفر چې د انسان لپاره ډیزاین شوی و، چې هیڅکله ورته ورته بسته نه وي . دا محصول د متغیر "send_slow" ارزښت په واسطه کنټرول کیږي چې دوه عنصر لیست اخلي. لومړی عنصر یوټلیټ دی چې د بیتونو شمیرې په اټومي توګه لیږدول کیږي. دویم عنصر یو حقیقي شمیر دی چې د هغه ثانوي شمېره تشریح کوي چې له مخې یې د اټومي ریلونه باید جلا شي. د بیلګې په توګه، "د send_slow {10 .001}" لیکل به "د" Send -s "ځواک ولګوي ترڅو د هر لسو لسو کالو ترمنځ لېږل شوي 1 ملیون سیکنڈ سره واستوي.

د پرچم پوځونه به تولید شي (ځینې شیان ) لکه د انسان په څیر چې ټایپ کوي. د انسانانو په څیر ځنډونه د حرفونو تر منځ ښکاره کیږي. (الګوریتم د Weibull ویشلو پر اساس دی، د دې ځانګړي غوښتنلیک سره سم تعدیلاتو سره سم بدلونونه.) دا محصول د متغیر "لیږونکي" ارزښت په واسطه کنترولیږي کوم چې پنځه عنصر لیست اخلي. لومړنۍ دوه عناصر د حروفونو منځنۍ منځنۍ مودې وختونه په ثانیو کې دي. لومړی د ڈیفالټ لخوا کارول کیږي. دویمه برخه د کلمې په پای کې کارول کیږي، ترڅو د هغه نیمګړتیاوو سره سم چې د ځینو وختونو په وخت کې پیښ شي. دریم پیرامیټره د متغیریت اندازه ده چېرته چېرته چې 1. یو څه متغیر دی، 1 یو مناسب متغیر دی، او 10 ډیر ناڅاپي دي. دا انډولونه 0 انفیتیوت ته دي. وروستی دوه پیرامیټونه په ترتیب سره، لږ تر لږه او د ډیرو مداخلو وختونه دي. لږترلږه او ډیری وروستی وخت تیر او "کلپ" کارول کیږي. وروستنۍ اوسط ممکن د ټاکل شوي اوسط څخه توپیر ولري که کم تر لږه او ډیرو کلپونو پوره ارزښتونه.

د مثال په ډول، لاندې کمانډ یو تیز او متوسط ​​ټیکټر راولي:

send_human ولیکئ .1 .1 .3 1 .05 2} send -h "زه وږی یم راځم چې د غرمې ډوډۍ ترسره کړم."

پداسې حال کې چې لاندې کیدای شي د لرې کولو وروسته ډیر مناسب وي:

ولېږه شومینوم {4 .4 .2 .5 100} send -h "ښې خواوې د شپې غلا کوي!"

ياد ولرئ چې غلطي سمبال نه دي، سره له دې چې تاسو کولی شئ د تېروتنې اصلاحات د استدلال په غلطیتونو او اصولو سره په سمه توګه وضع کړئ.

د توکیو لیږلو لپاره، د نیل کونکي لیږلو لپاره بیرغونه، د سست رفتار تولیدولو لپاره او د انسان پلوه محصول لپاره لپاره دوه اړخیز ځانګړي دي. یواځې یو مشخص به وکارول شي. برسېره پردې، د تار دلیل هیڅ ډول جغرافیایي نښې مشخصې نه شي کیدی چې نالست کونکي یا وقفې واستوي.

دا یوه ښه مفکوره ده چې د توقع له مخې د لومړي ځل لپاره بهیر ته واستول شي. تمه کیږي چې پروسه به پیل شي، کله چې لیږل نشي کولی. په ځانګړې توګه، که چیرې لومړی لیږ د پروسې پیل پیل کولو مخکې بشپړ شي، تاسو خطر ستاسو د معلوماتو په پام کې نیولو سره مخ پر مخ وړئ. په هغو شرایطو کې چې انټرنیټ پروګرامونه ابتدايي ابتدايي وړاندیز نه کوي، کولی شئ مخکې له دې چې تاسو په لاندې ډول لیږل کیږئ پریږدي:

# د هکرونو د نښه کولو څخه مخنیوی کول چې څنګه وغواړئ، # دا سیسټم د بهرني پاسورډ لپاره الرښوونه نه کوي. # د 5 ثانیو لپاره انتظار وکړئ د سپن ټیلټ ډیری ډیزاین کولو لپاره انتظار وکړئ .secure.gov نیټه 5 پټنوم واستوي \ r

exp_send د لیږلو لپاره یو نوم دی . که تاسو د Tk چاپیریال کې د امید امید یا د نورو مختلفو بڼو کاروئ، نو د Tk لخوا د بشپړ مقاصد لپاره لیږل کیږي. exp_send د چاپیریال ترمنځ مطابقت لپاره برابر شوی. ورته نور جهادونه د نورو تمویل نورو نورو لیږلو قوماندې لپاره چمتو شوي.

Send_error [-flags] تار
لکه د لیږلو په څیر دی، مګر دا چې دا محصول د اوسني پروسې په ځای سټراډر ته لیږل کیږي.

Send_log [-] تار
لکه د لیږلو په څیر، پرته له دې چې دا سیسټم د لینک فایل ته لیږل کیږي ( log_file وګورئ) دلیلونه په پام کې نیول شوي که چیرې د لیګ نشتون دوتنه خلاص وي.

Send_tty [-flags] تار
لکه د لیږلو په څیر دی، مګر دا محصول د اوسنۍ پروسې په پرتله / شیطې ته لیږل کیږي.

Send_user [-flags] تار
لکه د لیږلو په څیر دی، مګر دا چې دا محصول د اوسني پروسې په ځای د سټیټیو لپاره لیږدول کیږي.

خوبونه
د لاندینۍ ثانیو لپاره سکریپټ د سوځیدلو سبب ګرځي. ثانوي کیدای شي د لیسټ شمیره وي. مداخلې (او د Tk پیښې چې تاسو د استیک کارولو لپاره کار کوئ) پروسس کیږي پداسې حال کې چې خوب غواړي.

سپون [args] پروګرام [args]
د پروګرام پروګرام " چلولو " یوه نوې پروسه رامینځته کوي. اسسټینډ، سټیټ او سټرایر د تمه پورې تړلی دی، نو دوی ممکن د نورو تمویلو قوماندې لیکلي او لیکلي وي. پیوستون د نژدې نیولو له امله ویجاړ شوی یا که چیرې پروسه پخپله د دوتنې پیژندګلوي بندوي.

کله چې یو پروسې د سپون لخوا پیل شي، متغیر سپاون_ید یو تشریح کونکي ته لیږل کیږي چې دا پروسې ته اشاره کوي. د سپونید لخوا بیان شوی پروسیجر د "اوسني پروسې " په توګه ګڼل کیږي. سپاون_ید ممکن د دندې کنترول چمتو کولو کې، لوستل یا لیکلي وي.

user_spawn_id یو نړیوال متغیر دی چې پکې یو تشریح کونکی دی چې کارن ته اشاره کوي. د مثال په توګه، کله چې سپونید_ دا ارزښت ته ټاکل شوی وي، تمه کیږي چې expect_user چلند وکړي .

. error_spawn_id یو نړیوال متغیر دی چې پکې یو تشریح کونکی دی چې معياري تېروتنه ته اشاره کوي. د مثال په توګه، کله چې سپونید_ دا ارزښت ته سپارل شوی، د send_error په څیر چلندونه ولیږئ .

tty_spawn_id یو ګورت متغیر دی چې پکې یو توکیزونکی دی کوم چې / dev / tit بدلوي . که / dev / tty شتون نلري (لکه څنګه چې په یو کرونټ، یا په بیچ یا سکرټ کې)، بیا tty_spawn_id تعریف شوی نه دی. دا کیدای شي په لاندې ډول ازموینه وشي:

که چېرته {د مالوماتو tty_spawn_id]} {# / dev / tty موجود دی} نور {# / dev / tty شتون نلري شاید په زیرون، بسته، یا سکریپټ کې}

سپون د UNIX پروسيجر بېرته راګرځوي. که چیرې کوم بهیر سپک نشي، 0 بیرته راستانه شوی. متغیر سپون_ (غلام، نوم) د پیټ غلام غلام په نامه ټاکل شوی دی.

په ډیفالټ کې، سپوان د قوم نوم او دلیلونه تاییدوي. د نانوکو پرچم د دې کار کولو څخه ډډه کوي.

د غرنۍ پرچم د کنسول محصول تولیدوي چې د پروسې لپاره یې ریښیږي. دا په ټولو سیسټمونو کې ملاتړ نه کوي.

داخلي، سپون د pty کاروي، د کاروونکي ټیت په څیر پیل شوی. دا نور پیل شوی دی ترڅو ټول ترتیبات "سنین" وي (د سټیټ (1) سره سم. که چیرې متغیر سټینینټ تعریف شي، دا د ټیټ میتودونو په اندازې کې د نور کنټرول په توګه تعبیر شوی. د بیلګې په توګه، "د Stty_init خام" به د اضافه شوي پروسیز ټرمینال سبب شي چې په خام وضع کې پیل شي. -ټټوپيپيکي د کارونکي د ټيټ پر بنسټ ابتدايي کول ځي. د "ابتدايي" ابتکار کولو پټنځایونه .

په عموما ډول، سپوان د اجرا کولو لپاره لږ وخت نیسي. که تاسو د پام وړ وخت وخت ونیسئ سپکاوی، ممکن ممکن د پیټونو سره مخ شي چې واده شوي وي. یو شمیر ازموینې په ptys کې روان دي تر څو د خنډونو پروسې سره د داخلي کولو مخه ونيسي. (دا په هر ډول پیښو کې 10 ثانیې واخلئ. د D-OP اختیار سره د تمه کولو تمه به وښيي چې آیا تمه لري په بیلا بیلو هیوادونو کې د ډیرو پیسو سره مخامخ وي. که تاسو هغه پروسې ونه وژلو چې د دې پیټس سره نښلول شوي وي، ستاسو یواځینۍ دوره کیدای شي بیا ریبوټ شي.

که چیرې پروګرام په بریالیتوب سره ونه توانېدل شي ځکه چې اجرا (2) ناکامه وي (د بیلګې په ډول کله چې پروګرام شتون نلري)، د غلطی پیغام به د راتلونکی انټرنیټ لخوا بیرته ستانه شي یا د تمه کولو قوماندې تمه شي لکه څنګه چې پروګرام د محصول په توګه د غلطي پیغام پیغام وګرځاوه او تولید یې کړ. دا چلند د سپون د پلي کولو طبیعي پایله ده. داخلي، سپون فورکونه، وروسته له دې چې سپکه پروسې د اصلي تمرین سره د خبرو اترو کومه لاره نلري مګر د سپاون_ید له لارې د اړیکو له لارې.

د پرانیستلو پرچم لامل کیږي چې راتلونکی دلیل د Tcl د پیژندونکي په توګه تعبیر شي (د مثال په توګه، پرانیستل کیږي .) سپوان ایټ وروسته بیا کارول کیدی شي که چیرې دا یو خوند شوي بهیر وي . (د فایل پیژندونکي باید نور کارول نه شي.) دا د خام سامانونو، فایلونو، او پایپینونو درملنه کوي لکه څنګه چې د pty کارولو پرته د سپرو شویو پروسو سره چلند کوي. 0 بیرته راستانه شوی ترڅو دا معلومه کړي چې هیڅ اړونده پروسه شتون نلري. کله چې د پروسې سره تړل تړل کیږي، نو د Tcl فایل پېژندونکی دی. د خلاصون پرچم د ورته کولو لپاره ورته دی - پرته له دې چې د انټیوپینډ سبب کیږي چې د فایل شناخت څخه وروسته د فایل کونکي کوونکی خلاص شي حتی.

خالي پرچم د پیټی پرانیستل سبب ګرځي مګر هیڅ ډول بهیر نه دی شوی. 0 بیرته راستانه شوی ترڅو دا معلومه کړي چې هیڅ اړونده پروسه شتون نلري. Spawn_id د معمول په توګه جوړ شوی دی.

متغیر سپون_ (غلام، ایف ډی) د پیژندونکي غلام سره سم د دوتنې پیژندل کیږي. دا کیدای شي "تړل - پوښ" کارولو سره وتړل شي.

د نامتو پرچم نومونه یو سګرټ دی چې په پیچلې پروسې کې سترګو کیږي . که نه نو، السلیکونه اصلي بڼه لري. نښانې د جال په قوماندې کې لیږل شوي، پرته له دې چې هر اشاره یو بل بیرغ ته اړتیا لري.

د انګور کچه
د اعدام کولو دمخه مخکی د چاپ شوو بیانونو لامل ګرځی. (د Tcl ټیسټ کمانډ توپیرونه پیژني.) د کچې کچه ښیي چې په کال ټیک کې د ټرانسپورت لپاره څومره لرې وي. د بیلګې په توګه، لاندې کمانډ تمه لري چې د لمړیو څلورو کچو تمرکز کوي، مګر دا یې نه لري.

تمه - "Strace 4" سکرېپټ .exp

د انففا پرچم د ټیټ لامل ګرځي چې ورکړل شوي د وروستیو غیر معلوماتو دلیلونو تفصیل بیان کړي.

سپتی دليلونه
د ټرمینل طریقې سره ورته ورته ورته د بهرني پوټ کمانډ بدلوي.

د ډیزاین په اساس، کنترول ټرمینل ته لاس رسۍ دی. نور ټرمینالونه کیدای شي د "امر کولو بیرته ستنېدو لپاره دا غوښتنې د قوماندې پایلې په توګه وکارول شي. که چیرته هیڅ حیثیت غوښتنه نه وي او کنترول ټرمینل ته لاسرسی ومومي، د خام او ګټو ځانګړتیاوې به په شکل کې بیرته راستانه شي کوم چې وروسته کیدی شي د قوماندې لخوا کارول کیږي.

د بیلګې په توګه، خام او ککړ شوي ټرمینټونه خام موډر ته ورکړ. هغه دلیلونه چې پخه شوي یا پکا شوي دي ټرمینګ د پکاو موډل ته انتقالوي. دلیلونه په ترتیب سره ټیکول په عین وخت کې د ګوتو او نیکونو په بڼه بدلوي.

لاندې مثال څرګندوي چې څنګه په عارضي توګه د انعطاف کولو غیر فعال کول. دا د اتوماتيک سکریپټونو په کارولو کې د دې لپاره کارول کیدی شي چې په دوی کې د شفرونو د ایستلو څخه ډډه وکړي. (لاندې د لا زیاتو تماسونو لاندې الندې بحث وګورئ.)

stty -echo send_user "پاسورډ:" expect_user -re "(. *) \ n" د پټنوم $ expect_out ولیکئ (1، سټراټیټ) سټ ګونګ

سیسټم استدلال
د (1) انډول په توګه ارقام ورکوي، لکه څنګه چې دا د ترمینځ د قوماندې په توګه لیکل شوی. تمه کیږي ترڅو چې د شیل تر پایه پورې پای ته ورسیږي. د بیرته ستنېدو حالت ورته ورته په غاړه دی چې اجراآت بیرته خپل هیواد ته ستنیدونکي حالت اداره کوي.

د تطبیق برعکس چې کوم سیسټم یې په نښه کړي او سکریپټ ته یې لیډوي، سیسټم بې ځایه کولو (پرته له هغه چې د سوریې لخوا اشاره شوي) ترسره کوي. نو ځکه، دا ممکنه ده چې هغه پروګرامونه وکارول شي کوم چې باید مستقیم / / dev / tty خبرې وکړئ. د همدې دلیل لپاره، د سیسټم پایلې په لوګ کې ثبت ندي.

ټیمسټیمپ [args]
یو مهال ویش بیرته راګرځي. د هیڅ دلیل سره، د عروج څخه وروسته د ثانیو شمیره بیرته راځي.

د - سمت پرچم یو تار تعقیبوي کوم چې بیرته راګرځیدلی مګر د بدیل لپاره د POSIX قواعدو مطابق د بدیلاتو سره. د مثال په توګه٪ یو د لنډې اونۍ د ورځې نوم (لکه Sat. نور یې دي:

د لنډې اونۍ ورځې نوم٪ A بشپړ اونۍ ورځ٪٪ ب لنډیزه میاشت نوم٪ B بشپړ میاشت نوم٪ c c د وخت وخت: Wed Oct 6 11:45:56 1993٪ د میاشتې ورځ (01-31٪ H ساعت (00-23)٪ ساعت (01-12)٪ j ورځ (001-366)٪ m میاشت (01-12)٪ دقیقې (00-59)٪ یا pm٪ ثان دویم (00-61) ٪٪ (1-7، دوشنبې د اونۍ لومړۍ ورځ ده) U د اونۍ (00-53، لومړی یکشنبه د اونۍ لومړۍ ورځ ده) V وی هفته (01-53، ISO 8601 بڼه)٪ w ورځ (0- 6 (د W اونۍ (00-53، لومړی دوشنبه د اونۍ لومړۍ ورځ ده) x x د وخت نیټه: د اکتوبر اکتوبر 6 1993٪ x د وخت وخت په: 23:59:59٪ y (00-99) ٪ Y کال کې په 1993 کې: Z وخت زون (یا هیڅکله چې د نه منلو وړ وي) ٪٪ یو نخښه نښه

نور٪ مشخصات ناباوره شوي دي. نور توريونه به د ناڅاپي لارې تېر شي. یوازې د سیمه ایز ملاتړ کوي.

د بیرغونو څخه د ځینو کانونو پیژندل د یوې سرچینې په توګه کارول کیږي چې له شکل څخه یې کارول کیږي. که نه نو، اوس مهال وخت کارول کیږي.

د GMT وخت زون استعمالولو لپاره د GGT پرچم ځواکونه timestamp پیداوار. د پرچم نه پرته، سیمه ایز وخت زون کارول کیږي.

ټریپ [[کمانډ] نښې نښانې]
د ټاکل شوې قوماندې سبب کیږي چې د راتلونکې ورکړل شویو نښو په راتلونکې کې پلي شي. قومانده په نړیوال ساحه کې اعدام شوې. که چیرې قوماندې غیر حاضر وي نو د اشارو عمل بیرته راګرځي. که چیرې قومانده د SIG_IGN تار وي، نو السلیکونه په پام کې نیول شوي ندي. که چیرې قومانده د SIG_DFL تار وي، سمبولونه د سیستم ډیزاین پایلې دي. نښې نښانې یا هم یو سګنل یا د سمبولونو لیست دی. نښې نښانې کیدای شي د سریال (3) مطابق د شمیري یا سمبول مشخص شي. کیدای شي "SIG" مخفف پریښودل شي.

د کوم دلیلونو سره یا (د بحث نمره) سره، trap د جال قومندان ته د اوسني اعدام حکم د سریال شمیره بیرته ورکوي.

د کوډ بيرغ د هرډول کوډ ځای کې د قوماندې د بیرته ستنې کود کاروي چې Tcl بیرته راستنیدونکي وو کله چې قوماندې په اصلي توګه په کار پیل وکړ.

د پایپ پرچم د دې سبب ګرځي چې قومانده د ژباړونکي فعاله کارولو په وخت کې د فعالیتونو په کارولو سره ارزونه ترسره کړي ځکه چې د قوماندې پر ځای د جریان اعالن کولو پر ځای پرمخ ځي.

د نوم نوم بیرغ د ځړولو قوماندانی سبب ګرځی ترڅو د جریان نوم سمبال کړی چی اوس مهال اعدام شوی دی.

د مایک پرچم د پاپ کمانډ سبب ګرځي چې د لوی سریال شمېره بیرته راستانه کړي چې کیدی شي.

د مثال په توګه، قوماندې "trap {send_user" Ouch! "} SIGINT" به چاپ شي "Ouch!" هرکله چې کارن کاروي.

په ډیفالټ کې، SIGINT (کوم چې عموما د ^ سي فشار له الرې تولید کیدی شي او SIGTERM د وتلو تمه لري. دا د لاندې جال له امله دی، چې د افتتاح په وخت کې رامینځته کیږي کله چې تمه کیږي پیل شي.

د جال وتل {SIGINT SIGTERM}

که تاسو د debugger پیلولو لپاره -D پرچم کاروئ، SIGINT د انټرک فعال debugger پېل کولو لپاره بیا رغول شوی. دا د لاندې جریان له امله دی:

نښې نښانې

د ډگرګر جال د چاپیریال متغیرات EXPECT_DEBUG_INIT د نوي ټرپ کمانډ ته ترتیبولو سره بدل کیدی شي.

تاسو کولی شئ، په دې توګه، دا دواړه یوازې ستاسو په سکریپټ کې د جال قوماندې اضافه کولو له لارې هماغه کچه تکراروي. په ځانګړې توګه، که تاسو خپل "د جال ایستلو نښې نښانې لرئ"، دا به د ډګګر جال تکرار کړي. دا ګټوره ده که تاسو غواړئ چې د کاروونکو مخنیوی کول په ټولو کې د debugger ته مخه کړئ.

که تاسو غواړئ چې د SIGINT په اړه خپله الرښوونه وټاکئ مګر بیا هم د Debugger لپاره جریمه کې کله چې چلول کیږي نو ځنډول یې کړئ، کارول:

که {{[exp_debug]} {د سرغړونو جعل SIGINT}

په عین حال کې، تاسو کولی شئ چې د یو بل نښان په کارولو سره د Debugger ته جال کړئ.

جال به تاسو ته اجازه ورنکړي چې تاسو د SIGALRM لپاره اقدام وکړي، ځکه چې دا د داخلي توقع لپاره کارول کیږي. د منحل کونکي قوماندې SIGALRM ته SIG_IGN (نظر نه لري). تاسو کولی شئ دا کار بیا تر هغه وخته پورې چې تاسو یې د راتلونکي سپمان قوماندې په وخت کې بند کړئ.

د لا زیاتو معلوماتو لپاره سمبول (3) وګورئ.

انتظار
ځنډول شوی پروسې پورې ) یا اوسني پروسه که چیرته هیڅوک ونلری (لغوه شي.

په عمومي ډول انتظار وکړئ د څلورو کالو لست لیست. لمړی لیکونکی د هغه پروسې پیلی دی چې انتظار کیده. دویمه ضمیمه د ورته سپن ایډ دی. دریمه انټرنټ -1 که چیرې د عملیاتي سیسټم خرابۍ رامنځ ته شي، یا 0 نور وي. که دریمه انټرنټ 0 وي، څلورم انټرن هغه حالت دی چې د خراب پروسې لخوا بیرته راځي. که دریم انټرګر وي -1، څلورم انټرن د عملیاتي سیسټم لخوا د غلطو ارزښتونو ارزښت دی. د نړیوال متغیر غلطی کوډ هم تنظیم شوی.

اضافي عناصر کیدای شي د راستنیدونکي ارزښت په پای کې د انتظار څخه راشي. یو اختیاري پنځم عنصر د معلوماتو ټولګې پیژندلي. اوس مهال، د دې عنصر لپاره یوازې ممکن ممکنه ده چیرته چې په راتلونکې کې دوه ارزښتونه د سی-سټایلینګ سګنل نوم او لنډ لنډیز تشریح دی.

د الف- پرچم د دې پروسې اعالن کوي ​​چې نوم یې د سپاون_ید سره سمون لري (د پروسې ID). د SIGCHLD لاسرسی دننه، دا ممکنه ده چې د سپون ID -1 کارولو په واسطه د سپک شوي پروسس انتظار وکړئ.

د بیرته راګرځیدنې بیرغ د بریالیتوب انتظار د اشارې سره سم د بیرته ستنیدلو انتظار بیرته راولي. کله چې پروسې وتړل شي (وروسته)، دا به په خپله په څرګنده توګه د انتظار انتظار پرته غائب شي.

د انتظار کولو قومانده کیدی شي د الکترونیکي پروسې انتظار وکاروي چې د دلیلونو په کارولو سره "-i -1". د خپلی پروسی سره د هغه کارول برعکس، دا حکم په هر وخت کی اعدام کیدی شی. هیڅ کنټرول شتون نلري چې کوم پروسې ترتیب شوی وي. په هرصورت، د بیرته ستنیدو ارزښت کیدای شي د پروسې ID لپاره وګورئ.

بکسونه

تمه لري چې د توقع سکرو لپاره د دوو ودانیزو کتابتونونو په اړه پوه شي. دا د هغو بدلونونو لخوا تعریف شوي چې په بدلونو کې نومول شوي نومونه. دواړه د کارولو فایلونو په اړه دي چې د نورو متنونو لخوا کارول کیدی شي.

exp_library کې جوړښتي - خپلواکه فایلونه لري. exp_exec_library کې جوړښتي - انحصار لرونکي دوتنې لري. ستاسو په سیسټم پورې اړه لري، دواړه لارښوونې ممکن پوره خالي وي. د $ exp_exec_library / cat-buffer فایل شتون شتون لري چې آیا ستاسو / بن / بلیټ بفرونه په ډیفالټ کې یاست.

لومړیتوب - چاپ

د وړ چاپولو لپ ټپونو لپاره د ویګند تعریف تعریف دی. د تمویل شوي ویش معرفي کولو تعهد معرفي کول سم په سمه توګه نصب شوی، تاسو کولی شئ د دې په توګه کار واخلئ:

د سرغړونې - دوتنې دوتنه

نمونې

دا ډیری ښکاره ندی چې د هر څه سره یوځای شي چې د سورت پاڼې څنګه بیانوي. زه تاسو ته هڅوم چې د لوست توقع د ویش په ډیری ډرامه کې مثالونه ولولی او هڅه وکړئ . ځینې ​​یې اصلي پروګرامونه دي. نور نور د ځانګړو تخنیکونو ساده دي، او البته، یو جوړه د چټک هاکۍ دي. د انسټال فایل د دې پروګرامونو یو چټک کتنې لري.

د تمې پاڼې (د ALSO لیدل) هم ګټور دي. پداسې حال کې چې ځینې پاڼې د نښې په مخکینیو نسخو کې نښې نښانې کاروي، سره ملتیا منطقونه لاهم اعتبار لري او د دې سړي پاڼې په پرتله خورا نور تفصیل ته ځي.

کیوټیټس

استخراج کیدای شي د تمویل د قومونو نومونو سره ټکر شي. د بیلګې په توګه، لېږل د TK لخوا د بشپړ بیلا بیلو هدف لپاره تعریف شوی. د دې دلیل لپاره، د تمایل ډیری سپارښتنې د "ex_XXXX" په توګه هم شتون لري. حکمونه او متغیرات چې "exp"، "inter"، "spawn"، او "وختی" سره پیل کیږي نښې نلري. که تاسو د چاپیریال ترمنځ دا مطابقت ته اړتیا لرئ د پراخ شوي قوماندانی نومونه وکاروئ.

تمه کیدی شي د سکپین لیبرال نظریه ولري. په ځانګړې توګه، متغیرات د امید پروګرام لخوا د ځانګړي پروګرام لخوا لیکل کیږي د لومړي ځای څخه به لومړنۍ غوښتنه وشي، او که نه موندل کیږي، په نړیوال ساحه کې. د بیلګې په توګه، دا اړتیا د "نړیوالو وختونو" ځای ته اړتیا لري چې هر پروسیجر کې تاسو ولیکئ چې تمه کاروي. بل پلو، لیکلي متغیر تل په محلي ساحه کې دي) مګر تر هغې چې "نړیوال" قوماندې خپور نشي (. تر ټولو عام ستونزه دا لاملونه کله چې سپون په یوه کړنالره کې اعدام شي. د پروسې بهر بهر، سپونډیډ نور شتون نه لري، نو ځکه چې سپکه شوې پروسه نوره ساده ده چې د سکپین کولو له امله آسانه وي. د دې پروسیجر لپاره "Global Spawn_id" اضافه کړئ.

که تاسو د ضایع وړ وړتیا توان ونلری (لکه ستاسو سیسټم نه انتخاب کوي (BSD *. *)، سروې (SVR> 2)، او نه هم یو بل څه)، تمه کیدی شي یوازې په یو وخت کې یو واحد بهیر کنټرول کړي. په دې حالت کې، د سپونینډ ټاکلو هڅه مه کوئ، او نه باید تاسو د پروسې له لارې عملي کولو پرمخ وړلو پرمخ وړل ترسره کړئ پداسې حال کې چې د پیچلې پروسې پرمخ ځي. سربېره پردې، تاسو به په ورته وخت کې د څو پروسو) د یو کاروونکي په شمول (څخه تمه ونکړای شي.

ټرمینل پیرامیټونه کولی شي په سکرېپټونو لوی اثر ولري. د مثال په توګه، که چیرې یو سکریپټ لیکل شوي وي، د ګونګی په لټه کې وي، نو دا به غلطیږي چې ګوندې ګونګی وتړل شي. د دې دلیل لپاره، د ځواکونو سمینګ ټرمینل پیرامیټونه د اصلي په توگه تمه وکړئ. له بده مرغه، دا کار د نورو پروګرامونو لپاره ناامني کوي. د مثال په توګه، د ایکس شیل غواړئ د "معمول" نقشه بدل کړئ: نوي لیګونه نوي کټګوریو ته د کډوالو بیرته راستنیدلو نوي لیدو پرځای، او ګونګ معیوب دی. دا یو کس ته اجازه ورکوي چې د امیګونو کارولو لپاره د انټرینټ لیک تایید کړي. له بده مرغه، تمه کیدی شي چې دا اټکل ونه کړي.

تاسو کولی شئ غوښتنه وکړۍ چې د ترمیم پیرامیټونو ډیزاین سمبال نه وي، مګر تاسو باید د دې چاپیریال لپاره د لیکلو لیکلو په وخت کې خورا محتاط وی. د emacs په صورت کې، د شیانو لکه پایګاه او پای ته رسیدو پورې تړلو څخه ډډه وکړئ.

هغه حکمونه چې هغه دلیلونه منل شوي دي چې په یو واحد لیست کې کیږي) د تمایل ډولونه او خبرې اترې (د هیورستيک څخه کار اخلي چې پریکړه وکړي که لیست په حقیقت کې یو دلیل یا ډیری وي. هییرستیک یوازې هغه حالت کې پاتې کیدی شي کله چې لیست په حقیقت کې د یو واحد دلیل استازیتوب کوي چې د دوی ترمنځ د غیر سپیټ سپیس حروف سره ډیری نښتی \ n لري. دا په کافی اندازه د پام وړ ښکاري، مګر د "النبار" بحث د دې لپاره کارول کیدی شي چې یو واحد دلیل د یو واحد دلیل په توګه وټاکل شي. دا ممکن د ماشین تولید شوي امید کوډ سره کارول کیدی شي. په ورته ډول، د یو دلیل دلیل د څو بیلابیلو نمونو / کړنو په توګه ساتل کیږي.

BUGS

دا په واقعیت کې د "جنسی" (د "سمارټ ایکسیک" یا "Send-Expect") لپاره پروګرام نومولی، خو ښه احساس (یا شاید ښایسته یوازې پریتانیزمیز) نومول شوی.

په ځینو سیسټمونو کې، کله چې شیل سپک شوی وي، نو دا شکایت نه کوي چې ټیټ ته السرسی نلري مګر هرڅه چل کوي. دا پدې مانا ده چې ستاسو سیسټم د کنترول ټیسټ ترلاسه کولو لپاره میکانیزم لري چې تمه یې نه لري. لطفا پوه شئ چې دا څه ده، او دا معلومات بیرته ما ته واستوئ.

الټریکر 4.1 (لږترلږه د دې وروستیو نسخو) د پورته 1000000 وخت وخت نیسي چې د 0 سره برابر وي.

ډیجیټل UNIX 4.0A (او ممکن نور نسخه) که تاسو د SIGCHLD لینډر تعریف کړئ نو pty اختصاص کول ردوي. د لا زیاتو معلوماتو لپاره وړیا پاڼې وګورئ.

IRIX 6.0 د Pty اجازهونو سمه سمبال نه کوي نو که چیرې مخکې د بل چا لخوا کارول شوي pty اختصاص کولو هڅو تمه ونکړي، نو دا ناکام شو. IRIX 6.1 ته اپوډی کړئ.

ټیلټینټ (یواځې د SunOS 4.1.2 تر مینځ تایید شوی) hangs که چیرته TERM ندی ټاکل شوی. دا د Cron، at او Cgi سکرپٹونو کې یوه ستونزه ده، کوم چې TERM تعریف نه کوي. په دې توګه، تاسو باید دا په واضح ډول وټاکئ - کوم ډول چې معمولا غیر متوازنه وي. دا یوازې یو څه ته اړتیا لري! لاندې کیدی شي د ډیری قضیې لپاره کافی وي.

جوړ کړئ (ټرم) vt100

تپوس (یواځې د BSDI BSD / OS 3.1 i386 لاندې تصدیق شوی) ځنډول که چیرې شیل او کور ونه ټاکل شي. دا د cron ، at او Cgi سکرپٹونو کې یوه ستونزه ده، کوم چې د چاپیریال متغیر تعریف نه کوي. په دې توګه، تاسو باید په واضح ډول سره وټاکئ - کوم ډول چې معمولا غیر متوازنه وي. دا یوازې یو څه ته اړتیا لري! لاندې کیدی شي د ډیری قضیې لپاره کافی وي.

د (SHELL) / بن / ش سیٹ ENV (HOME) / usr / local / bin ترتیب کړئ

د Ptys ځینې تطبیقونه ډیزاین شوي ترڅو کندېیل د 10 څخه تر 15 ثانیو وروسته غیر ناڅاپي تولید له منځه یوسي (اصلي شمیره تطبیق لري - انحصار لري) وروسته له دې چې پروسې د فایل توکټرور بند کړی. لدې امله د پروګرامونو تمه لرم

د سپن نیټه نیټه 20 تمه

ناکام شي. د دې څخه د مخنیوي لپاره، غیر انتفاعي پروګرامونه د سپن په ځای عمل کولو سره وغواړئ. پداسې حال کې چې داسې شرایط د پام وړ دي، په عمل کې ما هیڅکله داسې وضعیت ندی لیدلی چې پدې کې د ریښتینې انټرنیټ پروګرام وروستۍ پایله به د دې چلند له امله له لاسه ورکړي.

له بلې خوا، کیري UNICOS ptys د فټ تشریح کونکي پروسېسر تړلو وروسته سمدلاسه هر غیر ناڅاپي پیداوار وباسي. ما دا کرایی ته راپور ورکړی دی او دوی په سمه توګه کار کوي.

ځینې ​​وختونه د چټک او غبرګون ترمنځ ځنډ ته اړتیا لیدل کیږي، لکه څنګه چې یو ټایټ انټرنیټ د UART ترتیبات یا د پیل کولو بټونو په لټون کولو سره د UART ترتیبات بدل کوي. عموما، دا ټول اړینه ده چې د دوهم یا دوه لپاره ویده شي. یو پیاوړی تخنیک دا دی چې تر هغه وخته پورې چې هارډر ته د انډول ترلاسه کولو لپاره چمتو وي چمتو نشي. لاندې مثال د دواړو ستراتیژیو کاروي:

"سرعت 9600 \ r" واستوئ ویده 1 هیله لرئ {وخت / {بھیجول "\ r"؛ exp_continue} $ prompt}

Trap-code به د کوم کوم قوماندې سره کار ونه کړي چې د Tcl په پېښه لوپ کې وي، لکه نیۍ. ستونزه دا ده چې د غونډې پایپ کې، Tcl د ASync Event Handlers څخه د بیرته راستنیدونکو کودونو څخه ډډه کوي. یوه اندېښنه دا ده چې د جال کود کې یو بیرغ وټاکئ. بیا بیرته د کمانډ څخه بیرغ بیرته وګورئ (مثلا نیند).

د تمباکو بیارغونه قوماندانی - د وختونو استدلال لیدل کیږي او په عمومي توګه د وختونو مفهوم نلري.

& # 34؛ اضافي اضافې & # 34؛

د توقع په اړه یو څه شیان شتون لري چې ممکن غیر غیر متوازن وي. دا برخه هڅه کوي څو د دغو شیانو په نښه کولو لپاره یو څو وړاندیزونه وکړي.

یو عام تمه ستونزه دا ده چې د شیل شاخصونه پیژني. ځکه چې دا د مختلفو خلکو او مختلف توپونو له نظره دودیز شوي دي، د موټرو وړ اتوماتیک رالین کیدای شي د چټک پوهیدلو پرته ستونزمن وي. یو مناسب تړون دا دی چې کاروونکي یو منظم بیان ذخیرې کړي چې د دوی فورا (په ځانګړې توګه، د هغې پای) د چاپیریال په بدل کې EXPECT_PROMPT بیانوي. لاندې کارول کیدای شي د کارولو وړ وي. که EXPECT_PROMPT شتون نلري، کوډ لاهم د سم کار کولو لپاره ښه چانس لري.

سمدستي وټاکئ "(٪ | # | \\ $) $"؛ # د default default catch catch {سمدستي $ env (EXPECT_PROMPT)} expect -re $ prompt

زه تاسو ته وهڅولم چې د هغو نمونو توقع وکړم چې د هغه څه پایله پکې شامله ده چې تاسو یې تمه لرئ. دا د ټول شیدو د لیدلو څخه دمخه د پوښتنې ځواب کولو امکان څخه مخنیوی کوي. سربيره پردې، کله چې تاسو د بشپړتيا په ليدلو سره د پوښتنو ځوابونه کولی شئ، نو که تاسو ځواب ووايي، نو ستاسو ځواب ښايي د پوښتنې په منځ کې راشي. په بل عبارت، نتیجه اخیستونکي خبرې اترې به سم وي، خو بیا غورځول کیږي.

په ډیری مواردو کې په پای کې د خلا حرف شامل دي. د مثال په توګه، د فایلپټ څخه فوری 'f'، 't'، 'p'، '>' او. د دې چټک سره د سمون لپاره، تاسو باید د دغو ټولو حرفونو حساب ورکړو. دا یو عام غلطي ده چې خالي نه وي. خالي په ښکاره توګه په نښه کړئ.

که تاسو د X * فارم ډول ډول کاروئ، * * به د ټولو هغه محصول سره سمون وکړي چې د X پای پایله یې ترلاسه کړي وروستی شي ته. دا خوځښت احساسوي مګر ځینې وختونه یې ګډوډ وي ځکه چې "وروستی شی ترلاسه شوی عبارت" کیدای شي د کمپیوټر چټک او د I / O د پروسس په واسطه د کیلي او د ډیسور چلوونکي لخوا توپیر وکړي.

په ځانګړي ډول، انسانان غواړي د پروګرام محصول په سترو لوبو کې راشي (اټومي) کله چې په واقعیت کې ډیری پروګرامونه په یو وخت کې د محصول کرښه تولیدوي. دا د دې قضیه ده، * د تیرې پراګراف په نمونه کې یوازې یوازې د اوسني کرښې پای ته رسېدلی وي حتی که څه هم داسې ښکاري، ځکه چې د سیالۍ په وخت کې دا ټول محصول و.

تمه لري چې پوه شي چې نور محصول راځي کله چې ستاسو ځانګړتیا په ځانګړې توګه د هغې لپاره حساب وي.

حتی د کرښې پر اساس بفرنگ پورې اړه ناباوره ده. نه یواځې پروګرامونه لږترلږه د بفیر کولو ډولونو په اړه ژمنې کوي، مګر د سیسټم حوزې کولی شي د تولید لینونه مات کړي ترڅو په ښکاره ډول ناڅاپه ځایونو کې وقف شي. په دې توګه، که تاسو د لیکلو نمونه د لیکلو نمونو وروستي څو کټګوریو څرګندولی شئ، نو دا د دې کار ترسره کول دي.

که تاسو د پرو رام په وروستیو پایلو کې د تمرین انتظار یاست او پروګرام په ځای بل کوم بل ته اشاره کوي، تاسو به ونشو کړای چې د وخت له کلیدي کلیدي سره معلومه کړي. دلیل دا دی چې تمه کیدی شي وخت ونلري - بلکه دا به د پیښې نښی ترلاسه کړي. د دې ځای کارول. حتی ښه، دواړه کارول. دا لاره که چیرې دا کرښه تل شاوخوا تیریږي، نو تاسو به د لیک لیک پخپله نه تغیر کړئ.

نوي لیګونه معمولا د کډوالو بیرته ستنیدلو سره بدل کیږي، کله چې د ټرمینل ډرایور لخوا د محصول محصول تیریږي ترتیبات. په دې توګه، که تاسو یو نمونه غواړئ چې په واضح توګه د دوو لینونو سره، سره، ووایاست، نو چاپ ("foo \ nbar") تاسو باید د "foo \ r \ nbar" ډول ډول کاروئ.

کله چې د کاروونکي مطالعې، د توقع_سیر له لارې هم ورته ژباړه کیږي. په دې حالت کې، کله چې تاسو بیرته ستنېدو، نو دا به په نوي لیک کې ژباړل شي. که تمه کیږي هغه پروګرام ته لیږدول کیږي کوم چې د خام موډل (لکه ټیلټینټ) ته د ترمیم ټاکلو لپاره، یو ستونزمن وي، ځکه چې دا پروګرام یو ریښتینې راستنیدونکي تمه لري. (ځینې پروګرامونه په حقیقت کې بخښنه کوي چې دوی به په اوتومات ډول بیرته راستنېدو لپاره نوي لیکونه ژباړوي، مګر ډیری یې ندي.) له بده مرغه، د دې موندنې کومه لاره شتون نلري چې دا پروګرام د خام موډر ته ترمینځ وساتي.

د بیرته راستنېدو سره د نوي سایټونو ځای په ځای کولو سره، حل دا دی چې د "سټیټ خام" قومانده کارول شي، چې دا به د ژباړې مخه ونیسي. په هرصورت، یادونه، دا پدې مانا ده چې تاسو به نور نور د پکا شوي کرښه - د سمونې ځانګړتیاوې ونه اخلئ.

په مستقیم ډول خپل ټرمینډ خام موډی ټاکئ نو دا ستونزه به رامینځته نشي.

دا ډیری وخت ګټور دي چې د شفر شفرونو کې شفرونه زیرمه کړي (یا نور شخصي معلومات). دا سپارښتنه نده شوې ځکه چې هر څه چې په کمپیوټر کې زیرمه شوي وي د هر چا لخوا د لاس رسی لپاره حساس دي. په دې توګه، په اتوماتيک ډول د سکرېپټ څخه د شفرونو لپاره هڅول د هغوی په لفظي ډول د مینځلو په پرتله خورا ښه نظر دی. سره له دې، کله ناکله دا ډول امتیاز یوازینی امکان وي.

له بده مرغه، د UNIX فایل سیسټم د سکرپٹونو جوړونې مستقیمه لار نلري کوم چې اجرا وړ وي مګر ناچاره وي. هغه سیسټمونه چې د setgid شیل لیکونو ملاتړ کوي په غیر مستقیم توګه دا په لاندې ډول سره سمبالوي:

د معمول په څیر د توقیف سکرپٹ (کوم چې پټ راز معلومات لري) جوړ کړئ. خپل اجازې جوړې کړئ 750 (-rwxr-x ---) او د یو باوري ګروپ لخوا ملکیت وي، یعنې یو ګروپ چې دا یې د لوستلو اجازه لري. که اړتیا وي، نو د دې هدف لپاره نوې ډله جوړه کړئ. بلکه، د / 5151 (-rwxr-s - x) اجازه لیک سره یو / بن / شریچر جوړ کړئ د مخکې په شان ورته ډلې.

نتیجه یو سکریپټ دی چې کیدای شي د هر چا لخوا اعدام شي (او لوستل شي). کله چې لیږل کیږي، دا د توقع سکرپٹ چلوي.

& # 34؛ وګورئ وګورئ & # 34؛

Tcl (3)، آزادی (3)
"د تمرین پلټنه: د اتوماتيک پروګرامونو لپاره د Tcl-based Toolkit" د ډان لیبس لخوا، مخ 602، ISBN 1-56592-090-2، O'Reily and Associates، 1995.
"تمه: د انټریکټیټ کنټرول کولو لپاره د نه غیر فعال وړتیا" د ډان لیبز لخوا، د 1990 د متحده ایالاتو د متحده ایالاتو د نیونې کنفرانس، Anaheim، California، د جون 11-15، 1990.
.م "د ډون لیبز لخوا د سیسټم د خودکار سیستم کولو تمریناتو تمه کول"، د 1990 امریکایانو د متحده ایالاتو د نوي انسټیټوټ سیسټم اداره کنفرانس، د کولوراډو سپرنگوالی، کولوراډو، اکتوبر 17-19، 1990.
I. "Tcl: د یو ایډز وړ وړ قوماندانی ژبه" د جان اوستر هاټ په واسطه، د ژمی 1990 د متحده ایالاتو د کنفرانس، واشنګټن، ډي سي، د جنوري 22-26، 1990، د پروسې ترسره کول ... زه "تمه: د انټرنیشنل پروګرامونو لپاره کنټرول" ډان لیبس، د کمپیوټر سیسټم ، والی. 4، نمبر 2، د کیليفورنیا د مطبوعاتو پوهنتون، د 1991 کال د نومبر، 1991. "د انټرنیشنل پروګرامونو د راجسټر ازموینې او موافقه کولو پروګرامونه"، د ډون لیبز لخوا، د سمر 1992 د متحده ایاالتو د متحده ایالاتو د انیسکس کنفرانس، پی پی 135-144، سان انتونیو، TX، د جون 12-15، 1992. "د ډب لیبس، سافټویر - تمرین او تجربې، جان ویلی او سنس، لویدیځ سوسیکس، انګلستان، Vol.

23، نمبر 5، می، 1993. "د Tcl غوښتنلیک لپاره یو Debugger"، ډان لیبن لخوا، د 1993 Tcl / Tk ورکشاپ، برکلي، CA، د جون 10-11، 1993، د پروسو ګرفتارونو.

AUTHOR

ډان لیبس، د معیارونو او ټیکنالوژۍ ملي انسټیټوټ

ACKNOWLEDGMENTS

د Tcl لپاره جان اوستر هاټ او د سکاټ پایسلي لپاره د الهام لپاره مننه. د امید د خپلواکۍ د کوډ لپاره روب سایټ ته مننه.

د HISTORY فایل د توقع ډیره برخه ثبتوي. دا په زړه پوري لوستل او ممکن تاسو ته دا سافټویر ته نور معلومات درکړي. د هغه خلکو څخه مننه کوم چې په دې کې یې یادونه وکړه چې ما د غال اصلاحات واستول او نورې مرستې یې ورکړ.

د تمویل طرح او تطبیق د متحده ایاالتو حکومت لخوا ورکول کیږي او له همدې کبله په عامه ډومین کې دی. که څه هم لیکوال او NIST کریډیټ خوښوي که چیرې دا پروګرام او اسناد یا د دوی برخې وکارول شي.