Иҷрои Linux / Unix фармон

Интизор аст, ки барномае, ки ба барномаҳои дигар интерактивӣ вобаста аст, бо дастури. Пас аз он, ки хабари аҷиб аст, интизор аст, ки чӣ аз барномасозони интизорӣ ва чӣ гуна ҷавоб додан бояд дуруст бошад. Забони порнографӣ барои роҳнамоии муколама ва сохторҳои идоракунии сатҳи пешқадами идоракунӣ имкон медиҳад. Илова бар ин, истифодабаранда метавонад ҳангоми мустақиман ва пас аз бозгаштан ба идора ба идора бевосита назорат кунад ва мустақиман амал кунад.

Интизор метавонад омехтаи Expect ва Tk. Он ба мисли ҳавасмандии Том ва ТК рафтор мекунад. Интизорӣ инчунин бевосита дар C ё C ++ бидуни Tcl истифода бурда мешавад.

Номи "Expect" аз фикри интихоби иртибот / интизорӣ, ки аз тарафи uucp, kermit ва дигар барномаҳои назорати модем пазируфта мешавад. Бо вуҷуди ин, ба назар чунин мерасад, ки интизор меравад, ки он метавонад ҳамчун фармонҳои сатҳи корбар бо барномарезӣ ва вазифаи дар амал татбиқ карда шавад. Интизор метавонад дар як вақт якчанд барномаҳоро бифаҳмед.

Чӣ метавонад интизор шавад

Масалан, дар ин ҷо баъзе чизҳое ҳастанд, ки фармони фармоишро иҷро кардан мумкин аст:

Сабабҳои гуногун вуҷуд доранд, ки чаро ин ниҳод наметавонад ин вазифаҳоро иҷро кунад. Ҳамаи онҳо бо интизори имконпазир мебошанд.

Умуман, интизорӣ барои идора кардани ягон барномае, ки ҳамкории байни компютер ва корбарро талаб мекунад, муфид аст. Ҳама чизи зарурӣ аст, ки ин ҳамкорӣ метавонад барномаҳоро муайян кунад. Умед инчунин метавонад ба истифодабаранда бе монеаи барнома назорат карда шавад. Ба ҳамин монанд, истифодабаранда метавонад ҳар гуна вақтро идора кунад.

Истифодабарӣ

Интихоби cmdfile барои рӯйхати фармонҳо барои иҷрокунӣ интизор аст. Интизорӣ метавонад дар системаҳое, ки # # қайд кардан ба воситаи скрипт ҳамчун иҷрошаванда ва хатогии аввалин дар сутун:

#! / usr / local / bin / интизорӣ -f

Албатта, роҳ бояд бояд дақиқан тавзеҳ диҳед, ки дар он зиндагӣ чӣ интизор аст. / usr / local / bin танҳо намуна аст.

Парчами -c фармоишро пеш аз ҳама дар скрипт иҷро мекунад. Фармони мазкур бояд барои пешгирӣ аз шикастани ҳезум оварда шавад. Ин параметр метавонад якчанд маротиба истифода шавад. Фармоишҳои якхеларо бо якб-як бо ресмонҳо ҷудо кардан мумкин аст. Фармонҳо бо тартиби муқарраршуда иҷро карда мешаванд. Ҳангоми истифодаи Expectk, ин вариант ҳамчун -command муайян карда шудааст.

Параметри -d ҳаҷми баъзе ташхисҳоро ба вуҷуд меорад, ки асосан фаъолиятҳои дохилии фармонҳоро, ки интизорӣ ва муошират доранд, нишон медиҳанд. Ин байрақ ҳамон тавре, ки "exp_internal 1" дар ибтидои скрипт интизорӣ дорад, ва илова кардани нусхаи Expect чоп карда мешавад.

Параметрҳои DD-ро ба ҳалли интерактивӣ имкон медиҳад. Арзиши рақамӣ бояд риоя шавад. Хизматдиҳанда пеш аз зеркашии Tcl, агар арзиши ғайрифаъол набошад ё агар ^ C пахш карда шавад ва ё нуқтаи ҷарроҳӣ зада мешавад, ё дар дигар хати кушод бо фармони дигар пайдо мешавад. Ҳангоми истифодаи Expectk, ин хосият ҳамчун - Debug тасвир шудааст.

Парчами -f файлеро, ки аз он хондани фармонҳо пешкаш мекунад, пешкаш мекунад. Парчамро интихоб кардан мумкин аст, зеро он вақте ки ҳангоми истифода аз # истифода мешавад! то ин ки дигар далелҳо дар хати фармон дода шаванд. Ҳангоми истифодаи Expectk, ин хосият ҳамчун -file муайян карда мешавад.

Бо нобаёнӣ, файли фармоиш ба хотираи хондашуда ва пурра иҷро карда мешавад. Ин баъзан барои хондан файлҳоро як воҳима мехоҳад. Барои маҷбур кардани файлҳои худсарона, ин параметрро истифода баред, парчами -b -ро истифода баред. Ҳангоми истифодаи Expectk, ин хосият ҳамчун "buffer" ном дорад.

Агар сатр "-" ҳамчун як файл номида шавад, вурудоти стандартии онро хонед. "./-" -ро истифода баред, аз файли аслии номи "-" хонед.

Калимаи «-i» сабабҳои зеринро барои муттасил ба фармоиш додан, ба ҷои он ки онҳоро аз файл сабт кунад. Бекор аз тариқи фармон ё баромад аз EOF қатъ мешавад. Парчами -i тақсим карда мешавад, агар ягон файли фармон, ё -c истифода нашавад. Ҳангоми истифодаи Expectk, ин хосият ҳамчун -interactive муайян карда мешавад.

- метавонад барои интихоби интихоби параметр истифода шавад. Ин фоиданок аст, агар шумо мехоҳед, ки параметрҳои интихобшударо ба скрипти худ гузаронед, бе он ки аз ҷониби Expect аз тарҷума шарҳ кунед. Ин метавонад ба таври муфассал дар # ҷойгир карда шавад! барои пешгирӣ кардани шарҳу тафсири ифодаи шаръӣ аз ҷониби интизорӣ. Масалан, инҳо далели аслиро, аз он ҷумла номи фиреби argv-ро тағйир медиҳанд.

#! / usr / local / bin / интизорӣ -

Дар хотир доред, ки ҳангоми ворид намудани далелҳо ба # #! хати.

Файл $ exp_library / expect.rc ба таври худкор ба тариқи автоматӣ захира карда мешавад, агар байрақи -N истифода шавад. (Ҳангоми истифодаи Expectk, ин хосият ҳамчун -NORC муайян карда шудааст.) Дарҳол пас аз ин, файли ~ / .expect.rc парвоз мекунад, агар байрақи истифодашударо истифода баред. Агар тағйирёбии муҳити атроф DOTDIR муайян карда шуда бошад, он ҳамчун феҳрист баррасӣ карда мешавад .expect.rc аз он ҷо хонда мешавад. Ҳангоми истифодаи Expectk, ин хосият ҳамчун "-orc" муайян карда мешавад. Ин сарчашма танҳо пас аз иҷрои иштибоҳҳои -c сурат мегирад.

-Валасаи таваққуф барои чопи рақами версияи ва баромад кардан. Парчами дахлдор дар Expectk, ки номи номи парчами дарозро истифода мебарад, -вири аст.

Блогҳои оптикӣ ба рӯйхат сохта шудаанд ва дар argv номида мешаванд ва. argc ба дарозии argv оғоз меёбад.

Argv0 номи номуайянӣ ё дутарафа муайян карда мешавад, агар ягон скрипт истифода нашавад. Масалан, номи зерин аз номи скрипт ва се калимаи ибтидоиро чоп мекунад:

send_user "$ argv0 [lrange $ argv 0 2] \ n"

Фармонҳо

Интизорӣ истифодаи забони фармоннависии истифодабаранда. Tcl даромади назоратро таъмин мекунад (агар, барои шикастани), арзёбии экспресс ва чанд хусусиятҳои дигар, аз қабили таърифи такрорӣ ва таъриф. Фармонҳое, ки дар ин ҷо истифода шудаанд, вале муайян нашудаанд (муқаррар, агар, exec) фармони Tcl мебошанд. Интизорӣ фармоишҳои иловагӣ. Агар тартиби дигар муайян нашуда бошад, фармонҳо сатри холӣ баргарданд.

Фармонҳо ба таври алоҳида номбар шудаанд, то ки онҳо метавонанд ба зудӣ ҷойгир карда шаванд. Бо вуҷуди ин, истифодабарандагони нав метавонанд бо осони кушодани хондан тавсифоти ирсолкунанда, фиристанд, интизор шаванд ва дар ин тартибот осонтар шаванд.

[close] [-oxec 0 | 1] [-i spawn_id]

Пайвастшавӣ ба раванди ҷорӣ. Бештари барномаҳои интерактивӣ дар асоси стерлинг ва баромади худ EOF -ро тафтиш мекунанд; Ҳамин тариқ, одатан, ба таври кофӣ қонеъ гардонидани равандро доранд . Парчами -i раванди худро дар робита ба номи spawn_id номбар мекунад.

Ҳарду интизор хоҳанд буд ва ҳамоҳанг хоҳанд шуд, ки раванди кунунӣ берун аз наздиктар кор мекунад, аммо агар шумо раванди худро кушоед, бигӯед, "exec kill $ pid", шумо бояд ба таври равшанро занг занед .

Парчами оҳангӣ муайян мекунад, ки оё молҳои коғаз дар ҳама гуна равандҳои тараќќикардашуда пўшонида шудаанд ё агар ин коркард карда шуда бошад. Барои кушодани розигии кушодашуда, кушодани параметри 0. Арзиши ғайримутамаркази сифрӣ ба решакан кардани ҳамаи равандҳои нав қувват мебахшад.

Парчами фатирро ғуломро бо розигии рамзӣ мепартояд. Вақте, ки пайвастшавӣ баста мешавад, ғулом низ ба таври худ пӯшида мешавад ва агар ҳанӯз ҳам кушода бошад.

Новобаста аз он, ки пайвастшавӣ бевосита ё батартибо пӯшидааст, шумо бояд интизори зеркашии зеркашии раванди муосирро дошта бошед. Фармони ниҳоӣ интизор нест, зеро кафолат нест, ки маҳкам кардани пайвастагии раванд боиси он мегардад.

debug [[-now] 0 | 1]

як debugger Tcl-ро идора мекунад, ки шумо ба воситаи гузоришҳо такя кунед ва нуқтаҳои танзимро муайян кунед.

Бо далелҳо, 1 адад барҳам дода мешавад, агар debugger давом намекунад, вагарна 0 баргардад.

Бо 1 argument, debugger оғоз карда мешавад. Бо 0 argument, debugger қатъ карда шуд. Агар 1 аломати парчами парҳезӣ пешакӣ сар шавад, debugger фавран оғоз меёбад. Дар акси ҳол debugger бо баёнияи навбатии Tcl оғоз меёбад.

Фармондеҳ ҳал карда намешавад. Инро барои оғози сархат бо Парчами Expand пайдо кунед.

Фармоиши ҷудогона аз терминал ҷудо карда мешавад . Он дар давра давом мекунад. Ин раванд ба раванди худ раванди худро медиҳад. Стандарти I / O ба / dev / null бозсозӣ шудааст.

Параграфи зеринро барои давом додан ба скрипт дар замина ҷудо мекунад.

агар {{fork}! . .

Параграфи зерин паролро хонад ва сипас барномаро ҳар соат иҷро мекунад, ки ҳар як рамзро талаб мекунад. Параграфи паролро таъмин мекунад, то шумо фақат як бор онро чоп кунед.

{сервер}: {{fork}!} 0} {хоб 3600; давом додан} парокандагии private_prog интизори парол Парол: фиристед "$ expect_out (префикс) 1, string) \ r ". . . Баромадгоҳ }

Афзалият барои истифода бурдани хусусияти раванди асинхронии панели асбобҳо (&) ин умед аст, ки параметрҳои параметрро қабл аз ҷудо кардани хотираи фаврӣ ва пас аз он истифода баред. Бо & Expect имконияти хондан ба параметрҳои терминалро надорад, чунки терминал аллакай вақти пайвастагӣ дорад.

[вироиш] [вироиш]

сабабҳои интизорӣ кашидан ё ба таври дигар омадан тайёрӣ пайдо мекунанд.

Парчами оҳиста-оҳиста ба далели навбатӣ истифода хоҳад бурд, ҳамчун як вазифаи бардурӯғ истифода мешавад. Бе ягон баҳс, рабте, ки ҷорӣ карда мешавад, баргардонида мешавад.

Парчами нажтитатӣ ба назар мерасад, ки ба омода шудан ба рафтан баромадан, балки кӯтоҳ будани назорати баргаштан ба системаи оператсионӣ. Кормандони барӯйхатгирӣ муайян карда мешаванд, инчунин коргарони дохилии интизорӣ. Бе дигар амрҳои интизорӣ бояд иҷро карда шаванд. Ин хеле фоиданок аст, агар шумо ба кор даровардани Expansion with other extension Tcl. Тарҷумони кунунӣ (ва тирезаи асосӣ, агар дар муҳити Tk) боқӣ монанд, то дигар тарофаҳои Tcl пок карда шаванд. Агар баромади интизорӣ боз такрор шавад, (аммо ин метавонад рӯй диҳад), иҷрокунандагон бозмедоранд.

Баъд аз баромадан, ҳамаи пайвастҳо ба равандҳои пароканда пӯшида шудаанд. Хомӯшӣ ҳамчун EOF аз ҷониби равандҳои бебаҳо ошкор карда мешавад. баромадан аз амалҳои дигар берун аз он, ки расмии _exitit (2) расмӣ аст. Ҳамин тариқ, равандҳои кашида, ки барои EOF-ро санҷида наметавонанд, метавонанд давом диҳанд. (Чораҳои шартӣ барои муайян кардани масоил, масалан, чӣ нишон медиҳад, ки раванди кашидашуда фиристода мешавад, аммо ин система вобаста аст, одатан дар асоси exit (3).) Равандҳои кашидашудае, ки давом медиҳанд, аз ҷониби ташаббус вор мешаванд.

ҳолати (ё ки агар нишон дода нашуда бошад) ҳамчун ҳолати баромади интизорӣ баргардонида мешавад . агар дар охири скрипт ба итмом расад, баромадан манъ аст.

Садо Меҳмони "Озодӣ"
Фармони фаромӯшнашаванда имкон медиҳад, ки худро идома диҳад, на аз тавре, Бо нобаён, exp_continue вақтро аз вақт ҷудо мекунад. The flag -continue_timer flagpad -ро аз нав оғоз мекунад. (Нигаред ба иттилооти бештар нигаред.)

exp_internal [-f file]
боиси фармоиши минбаъда барои фиристодани иттилооти ташхиси дохилӣ ба Expect ба stderr, агар арзиши ғайрифаъол набошад. Ин нишондиҳанда бекор карда мешавад, агар арзиш 0 бошад. Маълумоти ташхисӣ ҳар як аломати гирифташуда ва ҳама кӯшишҳоеро, ки ба истеҳсоли маҳсулот дар муқоиса бо намунаҳо мувофиқанд, дар бар мегирад.

Агар файли вариант таъмин карда шавад, баромади оддии ва зӯроварӣ ба он файл (новобаста аз арзиши арзиш ) навишта мешавад. Ҳама гуна парвандаҳои пешакии ташхиси протокол пӯшида шудаанд.

Парчами -инфӣ сабабҳои пайдоиши матнҳои ахбороти охиринеро, ки дода шудааст, бармегардонад.

exp_open [args] [-i spawn_id]
бозгашти файли Tcl, ки ба рамзи аслии корбар мувофиқат мекунад. Пас маълум мешавад, ки он аз тарафи Tcl фармони кушод кушода шудааст . (Роҳаи кӯҳӣ бояд дигар истифода шавад. Интизорӣ бояд иҷро карда нашавад.

Парчами- иаопопен баромади кушодро барои дастрасӣ ба воситаи фармоишҳои интизорӣ кушодааст. Интизорӣ бояд дар рахти анборӣ иҷро шавад.

Эзоҳ: exp_pid [-i spawn_id]
раванди решаи мувофиқро ба раванди ҳассос табдил медиҳад. Агар парчами -i-ро истифода бурда шавад, тозакунӣ баргардонида мешавад, ки ба он розигии ID дода шудааст.

Садо Ояндасоз
як аломати фиристодан аст .

НОҲИЯИ ДАНҒАРА
як аломати " send_error" аст .

exp_send_log
як номи дигар барои send_log аст .

exp_send_tty
як аломати send_tty аст .

exp_send_user
барои фиристонандаи send_user аст .

exp_version [[-exit] версия]
барои тасдиқи он, ки скрипт бо нусхаи ҷории визуалӣ мувофиқ аст.

Бо далелҳо, нусхаи ҷорӣ оид ба интизорӣ баргардонида мешавад. Ин вариант метавонад дар скрипти шумо рамзгузор карда шавад. Агар шумо ҳақиқатан медонед, ки шумо намоиши функсияҳои навтаринро истифода намебаред, шумо метавонед варианти пештараро муайян кунед.

Вариантҳо аз се рақам аз рӯи нуқтаҳо иборат аст. Аввалин рақами асосӣ аст. Стипендҳо барои тарҷумаҳои интизорӣ бо як рақами асосии чопшуда қариб ки кор намекунад. exp_version , агар рақами асосӣ мувофиқат накунад, хато мекунад.

Дуюм рақами каме аст. Сутунҳо барои нусхабардорӣ бо нусхаи хурдтар аз нусхаи ҷорӣ метавонанд аз баъзе хусусиятҳои нав вобаста бошанд ва шояд натавонанд иҷро шаванд. exp_version агар ададҳои калон мувофиқат кунанд, хато бар мегарданд, аммо рақами камтарин аз он ки интизори иҷрошаванда зиёдтар аст, бармегардад.

Сеюм шуморае мебошад, Бо вуҷуди ин, он вақте, ки тақсимоти нармафзори интизорӣ ба ҳар гуна роҳ, ба монанди ҳуҷҷатҳои иловагӣ ё оптимизатсия тағйир дода мешавад. Дар ҳар як нусхаи навтарини нав ба 0 тааллуқ дорад.

Бо парчами тақаллубӣ , Интизор ҳангоме, ки нусхаи он аз санаи ниҳоӣ хато ва баромаданро чоп мекунад.

интизори [[-кас] pat1 body1] ... [-opts] patn [bodyn]
то он даме, ки яке аз намунаҳое, ки ба истеҳсоли протокол ворид карда мешавад, давомнокии муайяни гузаштаро ба анҷом мерасонад, ё тамоман хотима меёбад. Агар мақоми ниҳоӣ холӣ бошад, он мумкин нест.

Намудҳо аз интихоби охирин пешгӯиҳои пешакӣ пеш аз фармоишӣ пеш аз ҳама гуна намунаҳо истифода мешаванд. Намунаҳои аз интизороти охирин пештара фармоишӣ пас аз ҳамаи шаклҳои дигар истифода мешаванд.

Агар далелҳо ба тамоми таклифот интизоранд , беш аз як сатр талаб карда шавад, ҳамаи далелҳо метавонанд ба якҷоягӣ бо мақсади пешгирӣ кардани хотираи ҳар як сутун бо пуштибонии такрорӣ. Дар ин ҳолат, ивазкунии аломатҳои Tcl, сарфи назар аз он, ки фронтҳо ба амал меоянд.

Агар намунаи eof калимаи калид бошад, пас мақолаи мувофиқ иҷро карда мешавад. Агар намунаи вақти калидии калидӣ бошад, дар муддати вақт ба мақомоти дахлдор анҶом дода мешавад. Агар ягон калимаи калидии вақти вақт истифода бурда нашавад, амалияи нопурра дар вақти вақт иҷро карда мешавад. Давомнокии вақти пешазинтихоботӣ 10 сония аст, аммо мумкин аст, масалан, 30, бо фармоиши "timeout setout 30". Вақти бепоя метавонад бо арзиши -1 муайян карда шавад. Агар намунаи калимаи калидӣ бошад, мақомоти дахлдор дар вақти вақт ё охири файл иҷро карда мешавад.

Агар намуна мувофиқ бошад, пас мақомоти дахлдор иҷро карда мешавад. интизори натиҷаҳои бадан (ё воҳиди холӣ, агар намунаи мувофиқ мавҷуд нест) баргардонида шавад. Дар ҳолате, ки шаклҳои гуногун мутобиқат мекунанд, яке аз аввалинҳо барои интихоби бадан истифода мешавад.

Ҳар як маҳсулоте, ки нав мешаванд, ба ҳар як тартиб дар тартиботи дар боло номбаршуда ҳисоб карда мешавад. Ҳамин тариқ, шумо метавонед бо сабаби набудани услуби санҷишӣ, ки ба охирин чизе, ки кафолат дода мешавад, пайдо шуда бошед, ба монанди фавран. Дар ҳолатҳое, ки дар вақти фаврӣ вуҷуд надорад, шумо бояд вақташонро сарф кунед (агар шумо ба таври дастҷамъона муносибат дошта бошед).

Намудҳо бо се роҳ муайян карда мешаванд. Бо нобаёнӣ, тасвирҳо бо фармони фармони string Tcl муайян карда мешаванд. (Чунин намунаҳо низ ба нишондиҳандаҳои доимии C-shell монанданд, ки одатан ҳамчун «қолабҳо» ном доранд). Парчами -gl метавонад барои муҳофизат кардани намунаҳое, ки бевосита парчамҳои интизорӣ аз ин корро ба даст оварда метавонанд, истифода бурдан мумкин аст. Ҳар як намунаи ибтидоӣ бо "-" бояд ин тавр муҳофизат карда шавад. (Ҳама пахшкуниҳо бо "-" барои вариантҳои оянда ҷудо карда мешаванд).

Масалан, ҷудокунии зерин ба кушодани муваффақ назар мекунад. (Фаромӯш накунед, ки бекоркунӣ ҳамчун протокол дар ҷои дигар ҷой дорад.)

Боварӣ ҳосил кунед, ки бандҳои бениҳоят бениҳоятанд; exp_continue} бекормонии нокомии "калимаи раҳкушо" қатъгардида қатъ карда шуд}

Эзоҳҳо дар намунаи чорум заруранд, чунки он фосилаест, ки наменазад аз амалиёт ҷудо мекунад. Намунаҳое, ки ҳамон як амали (монанди 3 ва 4-юм) талаб мекунанд, ки амалиётро боз такмил диҳанд. Ин метавонад бо истифодаи тасвирҳои ранги рангҳо (ба поён нигаред) пешгирӣ карда шавад. Маълумоти муфассалро оид ба ташаккули намунаҳои классикӣ дар дастури Tcl пайдо карда метавонед.

Намунаҳои статикӣ-сабкишӣ ба синтези муайяншудаи реҷаи Tcl (кӯтоҳ барои "ифодаи муқаррарӣ") иҷро мешаванд. Намудҳои решакан бо парчамро ҷорӣ карда мешаванд. Намунаи пештара метавонад бо истифода аз як regexp нав карда шавад, ки:

Боварӣ ҳосил кунед, ки бандҳои бениҳоят бениҳоятанд; exp_continue} -равӣ "пароли беэътибор | калимаи раҳкушо" бекор карда шудааст

Ҳар ду намуди намунаҳо "бесоҳиб" мебошанд. Ин маънои онро дорад, ки намунаҳо ба ҳамаи сатр мувофиқат намекунанд, вале метавонад ҳар гуна клавиатура дар сатрро сар кунад ва то охири ҳар чизи дигар бозӣ кунад. ^ Ро барои оғози сатр, ва $ барои мувофиқ кардани охири истифода баред. Дар хотир доред, ки агар шумо ба охири сатр интизор нашавед, ҷавобҳоятон метавонанд дар мобайни сатр ба осонӣ ба поён расанд, чунки онҳо аз раванди решакан карда шудаанд. Ҳол он ки ҳанӯз натиҷаҳои дурустро истеҳсол кардан мумкин аст. Ҳамин тариқ, истифодаи US $, агар шумо тасвирро дар охири сатр муайян кунед.

Дар хотир доред, ки дар бисёре муҳаррирон, мутаносибан дар охири ва охири сатрҳо мутаносиб аст. Бо вуҷуди ин, ки интизории хати ройгон вуҷуд надорад, ин рақамҳо дар ибтидо ва охири маълумотҳо (дар муқоиса бо сатрҳо) дар ҳоли интихоби мутатсия мебошанд. (Ҳамчунин, дар поён дар бораи "слайд система" нигаред.)

Параграфи -exex намунае, ки ба сатри "дақиқ" мувофиқ аст, оварда шудааст. Муайян кардани * *, ^ ва ғайра (ҳарчанд ки конвенсияҳои муқаррарии Tcl бояд то ҳол риоя шаванд). Намудҳои доимӣ ҳамеша пӯшида нестанд.

Парчами -ноказӣ ба ҳарфҳои калонтарини электрикӣ муқоиса мекунад, зеро ки онҳо аломатҳои хурдтаранд. Намунаи таъсир намебошад.

Ҳангоми хондани адад, зиёда аз 2000 bytes метавонад баҳои пештараро маҷбур кунад, ки «фаромӯш» шаванд. Ин метавонад бо функсияи matching_max функсияи тағйир дода шавад . (Фаромӯш накунед, ки арзишҳои изофӣ аз ҳад зиёд метавонанд ба ҳамоҳангсози таркибиро сусттар кунанд.) Агар рӯйхати пурраи феҳрист пуркарда бошад , мақомот мувофиқат карда мешаванд, агар match_max байтҳо қабул карда шаванд ва намунаи дигар намебошанд. Новобаста аз он, ки калимаи калимаи пурра_buffer истифода мешавад, аломатҳои фаромӯшшуда ба expect_out (буферӣ) навишта мешаванд.

Агар рӯйхати рӯйхат калимаи калидии калидӣ бошад, ва бо нусхабардории он (тавассути фармони хориҷ_nulls ) иҷозат дода мешавад, дар сурати мувофиқати ASCII 0 мувофиқат карда мешавад. Ин имкон медиҳад, ки 0 байт тавассути рамзҳои глобалӣ ё regexp мувофиқ бошад.

Ҳангоми мувофиқ кардани намунаи (ё eof ё full_buffer), ҳар як ҳамоҳангсозӣ ва пештараи номаълуми дар интихоби тағирёбии expect_out (буферӣ) сабт карда мешавад . То 9 бозгашти субтнинги regexp ба вариантҳо expect_out (1, сатр) тавассути expect_out (9, сатр) захира карда мешаванд . Агар байрақи параметрҳо пеш аз намуна истифода шаванд, нишондиҳандаҳои ибтидоӣ ва хотимавӣ (дар формати мувофиқ барои lrange ) 10 адад дар интизорот expect_out (X, оғоз) ва expect_out (X, охири) дар X рақамӣ ба мавқеъи субботӣ дар буферӣ мувофиқ аст. 0 ишора ба сатрҳое, ки ба ҳама намуна мувофиқанд ва барои шаклҳои глобалӣ, инчунин намунаҳои regexp оварда шудаанд. Масалан, агар раванди истеҳсоли "abcdefgh \ n" истеҳсол карда шавад, натиҷаи:

интизори "cd"

ин аст, ки агар изҳороти зерин иҷро карда мешуданд:

интихоби expect_out (0, string) cd set_out (буферӣ) abcd

ва "efgh \ n" дар варақаи баромадан мондааст. Агар раванди истеҳсоли "abbbcabkkkka \ n" бошад, натиҷаи:

(b +) * (к +) "

ин аст, ки агар изҳороти зерин иҷро карда мешуданд:

(0, охири) 10 set_out (0, end) 10 set_out (0, end) bbbcabkkkk set_out (1, оғози) 2 муқаррар expect_out (1, ох.) 3 set_out (1, string) bb set_out setup (2, оғози) 10 муқаррар expect_out (2, ох.) 10 set_out (2, string) k set expectedout

ва "a \ n" дар варақаи баромадан мондаанд. Намунаи "*" (ва -re) * * ") бе маҳдудкунии раванди баромадан аз протокол аз протокол тоза карда мешавад.

Одатан, маҳсулнокии мутобиқшуда аз варақаҳои дохилии интизорӣ кашида мешавад. Ин пеш аз ҳама бо пешгӯи кардани намуна бо парчами параграфӣ пешгирӣ карда мешавад. Ин байрақ махсусан дар таҷрибаи худ муфид аст ва метавонад барои «осонӣ ҳангоми дарки таҷрибагузорӣ» -ро истифода барад).

Нишондиҳандае, ки бо баромади ҳамоҳанг алоқаманд аст (ё eof ё full_buffer) дар expect_out нигоҳ дошта мешавад (spawn_id) .

Параметрҳои вақти барвақт фармони фармоишии ҷорӣро барои истифодаи арзиши интерфейси вақтро ҳамчун вақти вақт истифода мебарад.

Бо нобаёнӣ, намунаҳо дар муқоиса бо протокол аз ҳозира мувофиқат мекунанд, аммо аломати - аз рӯйхати номҳои спавн_ид номбар карда мешавад, ки ба ҳар як намунаҳои зерин (то ба оянда -i ) мувофиқ бошад. Рӯйхати spawn_id бояд рӯйхати ҷудосозии феҳристи spawn_ids ё тағйирёбанда ба чунин рӯйхати spawn_ids бошад.

Масалан, намунаи зерин аз раванди кунунӣ, ё "банд", "нодуруст" ё "калимаи раҳкушо" аз spawn_id бо номи proc2 ном дорад.

интизори {-i $ proc2 банд {банд { exp_continue} -равӣ "пароли беэътибор | калимаи раҳкушо" бекор карда шудааст

Арзиши тағйирёбии глобалӣ any_spawn_id мумкин аст барои мувофиқ кардани шаклҳо ба ҳар як spawn_ids истифода шавад, ки бо ҳамаи албомҳои дигар дар амри фармонандаро интизор аст . Spawn_id аз флаги -i бо намунаи алоқаманд (яъне, фавран аз тарафи дигар -i ) дар ҳама гуна шаклҳои дигари интизорӣ бо ягон_spawn_id дастрас аст.

Парчами -i низ метавонад тағйироти глобалӣ номида шавад, ки дар он ҳолате, ки тағирот барои рӯйхати хомӯшии доманакӯҳҳо хонда мешавад. Ин тағйирот ҳар вақте ки тағйир меёбад, аз нав дида мешавад. Ин як роҳи тағйир додани манбаъи I / O мебошад, вақте ки фармоиш иҷро мешавад. Корҳои токсикӣ, ки ба тариқи "бавосита" номбар шудаанд, инҳоянд.

Амалҳо, ба монанди танаффус ва идома додани сохторҳои идоракунӣ (яъне, барои пешбурди ) тарзи одилона. Фармони фаромӯшнашаванда имкон медиҳад, ки худро идома диҳад, на аз тавре,

Ин барои пешгирӣ кардани ҳалқаҳои ошкоро ё баёноти такрории такрорӣ муфид аст. Намунаи зерин қисмати қисмат барои автоматро сар кардан аст. Exp_continue хулосаи дуюмдараҷаи интизорӣ интишор мекунад (барои бозхондани фаврии фаврӣ), агар рогин барои парол талаб кунад.

парол: {stty -echo send_user "калимаи раҳкушо барои $ host:" expect_user -re "(. *) \ n" send_user "\ n" ирсол "$ expect_out (1, string) \ r" stty echo exp_continue} нодуруст {параграфи нодуруст ё калимаи раҳкушо} 'send_user' ба вақти $ {$ a} {$ a} Масалан, қисмати зерин метавонад ба дастурамали корбар бо ҳамоҳангӣ мусоидат кунад, ки аллакай комилан автоматики мебошад. Дар ин ҳолат, терминал ба тарзи хом дохил карда мешавад. Агар корбар "+" -ро пахш карда бошад, тағйирёбанда афзоиш меёбад. Агар "p" пахш карда шавад, якчанд баргардиш ба протокол ирсол мегардад ва шояд "ин" -ро истифода барад, ва "i" имкон медиҳад, ки корбарро бо раванди мутақобилан бевосита идора кардани назорат аз script муайян кунад. Дар ҳар сурат, exp_continue имконият медиҳад, ки минбаъд ҳам мувофиқати намунавии пас аз иҷрои амалиёти ҷорӣ идома ёбад.

пӯсти гиёҳ-интихоби пешакӣ {-i $ user_spawn_id "p" {send "\ r \ r \ r"; exp_continue} "+" {incredible; exp_continue} "ман" {interact; exp_continue} "хориҷ" exit exit}

Бо нобаёнӣ, exp_continue вақтро аз вақт ҷудо мекунад. Вақтсанҷа бозоғоз карда намешавад, агар exp_continue бо парчами -continue_timer номида шавад.

интизор меравад [expect_args]
ки дар сурати интихоби пештара ба интихоби пештара иҷро шуда бошад, ба истиснои ҳолатҳое, ки ҳарду интизорӣ ва интизории он метавонанд мувофиқ бошанд, тасвири интизорӣ истифода мешавад. Барои интишори иттилоот expect_before фармоишро бинед .

expect_background [expect_args]
ки ҳамон тавре, ки интизорӣ доранд , ҳамон тавре ки интизор меравад , фавран баргардад. Ҳангоми воридшавии нав ба визуалӣ намерасад. Вақтсанҷи намунавӣ ва пешфарзӣ бетафовут барои интизори абонентӣ ва ба таври пинҳонӣ партофта мешаванд. Дар акси ҳол, фармоиши expect_background фармоишро пешакӣ истифода мебарад ва интизори он пас аз он ки интизорӣ меравад, ба назар мерасад.

Ҳангоми интихоби амалҳои иштибоҳот баҳогузорӣ карда мешавад, коркарди замина барои як розигии id баста шудааст. Ҳангоми анҷом додани амалиёт коркарди заминавӣ кушода мешавад. Дар ҳоле, ки коркарди ашёӣ маҳкам карда шудааст, имконнопазир аст, ки (пештар) корро дар ҳамон розигии ID интизор шавед .

Ҳангоми интизории парчелҳои авҷгирифташуда имконпазир аст иҷро кардани имконият. expect_background барои як мушаххаси мушаххаси ID бо эълони як интихоби наве, ки бо ҳамон розигии id. Бо эълони интишори услубӣ бо намунаи намунаи домении додашуда аз қобилияти мувофиқ кардани намунаҳо дар замина.

expect_before [expect_args]
ки ҳамон тавре, ки интизорӣ доранд , ҳамон тавре ки интизор меравад , фавран баргардад. Ҷуфти намунавӣ аз интизороти охирин пеш аз он ки бо ҳамон idrotage id ба таври комил ба фармонҳои фармоишӣ илова карда мешавад. Агар намуна мувофиқ бошад, он ба мисли он аст, ки дар амри амри тасвиб таъин карда шудааст, ва мақоми дахлдор дар доираи фармони фармоиш иҷро карда мешавад. Агар намунаҳое, ки интизор доранд, пештар ва интизорӣ метавонанд мувофиқ бошанд, пешгӯии пешакӣ истифода мешавад.

Агар намунаи муайян намебуд, розигии рамз барои ҳар гуна намуна тафтиш карда нашудааст.

Сарфи назар аз он , ки парчами -i-ро аз даст надодааст , пеш аз он, ки пеш аз он, ки фармоиши иҷрошаванда иҷро шуда истодааст, (пеш аз он, ки намунаи он мувофиқат кунад) муайян карда шавад.

Парчами -инфӣ интизор аст , ки пеш аз баргаштан ба хусусиятҳои ҷорӣ дар бораи кадом намунаҳо мувофиқат кунад. Бо нобаёнӣ, дар бораи розигии ID кор мекунад. Метавонад иттилоот оид ба решакан кардани решаи ихтиёрии мушаххасро дар бораи он рамзи доманадори дода шавад. Барои намуна

expect_before -info -i $ proc

Дар аксарияти як руйхати рамзи додашуда мумкин аст дода шавад. Парчаме, ки аз ҷониби рости рақсу бозӣ бозӣ мекунад, ки танҳо аз хусусиятҳои ғайримустақим омада меояд.

Ба ҷои иваз кардани мушаххасоти номаълум, парчами "-алл" боиси "-info" хоҳад шуд, ки дар бораи ҳамаи ресмонҳои кӯҳӣ гузориш диҳад.

Параметри парчами паролро метавонад ҳамчун далели пешгӯии пештара истифода барад.

expect_tty [expect_args]
монанди тасаввурот аст, аммо он аломатҳоро аз / dev / tty (яъне калидҳои дастии истифодабаранда) хондааст. Бо нобаёнӣ, хондан дар ҳолати пухта иҷро карда мешавад. Ҳамин тавр, хатҳо бояд бо баргаштан ба хотири интизории онҳо тамаркуз кунанд. Ин метавонад тавассути слайд тағйир дода шавад (нигаред ба фармон оид ба stty поён).

expect_user [expect_args]
ба монанди интизорӣ аст, аммо он аломати "stdin" -ро хондааст (яъне калидҳои дастии истифодабаранда). Бо нобаёнӣ, хондан дар ҳолати пухта иҷро карда мешавад. Ҳамин тавр, хатҳо бояд бо баргаштан ба хотири интизории онҳо тамаркуз кунанд. Ин метавонад тавассути слайд тағйир дода шавад (нигаред ба фармон оид ба stty поён).

мушакҳо
раванди нав эҷод мекунад. Раванди нав нусхаи дақиқи ҷараёни интизории ҷорӣ мебошад . Дар муваффақият, потенсиа ба раванди нав (кӯдакон) бармегардад ва ID-и раванди раванди кӯдаконро ба раванди волидайн бармегардад. Дар бораи беэҳтиётӣ (бо сабаби набудани захираҳо, масалан, фазо, ивазкунӣ), баргаштан -1 ба раванди волидайн бармегардад ва раванди кӯдакон офарида намешавад.

Раванди изоляторӣ аз тариқи фармон баромадан , аз қабили раванди аслӣ. Равандҳои манъшуда ба лавҳаҳои log навишта мешаванд. Агар шумо дар бисёре аз протсесҳо ба кор андохта бошед ё натиҷаҳоро вайрон накунед, натиҷа метавонад носаҳеҳ бошад.

Баъзе аз амалҳо метавонанд аз ҷониби хонандагон ва нависандагони сершумор, ҳатто дар миқёси худ ошуфта бошанд. Ҳамин тариқ, он пеш аз пештара пеш аз кишти такрорӣ пора карда мешавад.

interact [string1 body1] ... [stringn [bodyn]]
раванди ҷорӣ ба корбарро медиҳад, то ин ки тугмаҳои тугмаҳо ба раванди ҷорӣ фиристода шаванд ва стмут ва рангҳои раванди ҷорӣ баргардонида мешаванд.

Ҷуфти функсияҳои ҷисмонӣ ҳамчун далелҳо нишон дода мешаванд, ки дар он ҳолате, ки ҳангоме, ки ба сатри дахлдор дохил карда мешавад, анҷом дода мешавад. (Бо нобаёнӣ, ба сатри ҷорӣ ирсол нашудааст). Фармони тарҷумон ба назар мерасад, ки агар мақоми ниҳоӣ гум шавад.

Агар далелҳо дар маҷмӯаи муколамаи яктарафа бештар аз як сатр талаб карда шаванд, ҳамаи далелҳо метавонанд ба якҷоягӣ бо мақсади пешгирӣ кардани хотираи ҳар як бозӣ бо пуштибонии такрорӣ. Дар ин ҳолат, ивазкунии аломатҳои Tcl, сарфи назар аз он, ки фронтҳо ба амал меоянд.

Масалан, фармоне, ки бо ҷуфтҳои ҷуфтии ҷудокардашуда алоқаманд аст, дар амал татбиқ мегардад: Вақте ки ^ Z пахш карда мешавад, Интизорӣ боздошта мешавад. Вақте ки тугмаи "A" пахш карда мешавад, корбар кор мекунад "шумо чопгари A-ро" меномед ва раванди A ^ фиристода мешавад. Вақте, ки тугмаи "пахшшуда", истифодабаранда санаи мебинад. Вақте ки ^ C пахш карда мешавад, баромадан интизор шавед . Агар "foo" ворид шуда бошад, корбар "bar" -ро мебинад. Вақте ки бас басанда мешавад, тарҷумон интизор аст, ки интерактивӣ кор мекунад.

set CTRLZ \ 032 созед {-reset $ CTRLZ {exec kill -STOP [pid]} \ 001 {send_user "шумо коди" A \ n "-ро чоп кардед; фиристед "\ 001"} $ {send_user "Санаи [соати соатӣ [соати сония]]."} 003 exit foo {send_user "bar"} ~~}

Дар ҷуфт-ҷуфтҳои ҷисмонӣ, сатрҳо бо тартиби муайян ҳамчун далели номбаршуда мувофиқанд. Тафсилотҳое, ки қисман мутобиқ ба раванди ҷорӣ дар пешгӯиҳои боқимонда меоянд. Агар ҳуруфҳо дохил карда шаванд, пас, мумкин нест, ки бозии матнӣ бошад, фақат қисми қисми сатр ба раванди фиристода мешавад , ки имконпазир нест, ки бозии дигар оғоз ёбад. Ҳамин тариқ, сутунҳое, ки ҷузъҳои қисмҳои қисмат ҳастанд, баъдтар мувофиқат карда метавонанд, агар иштибоҳҳои аслӣ, ки кӯшиш ба харҷ медиҳанд, муваффақ мешаванд.

Бо нобаёнӣ, рақами сатр дақиқан бо кортҳои ваҳшӣ нест. (Баръакс, фармони фармоиш бо намунаҳои классикӣ ба таври пешфарз истифода мебарад.) Параграфи -текс барои муҳофизат кардани намунаҳое, ки бевосита ба парчамҳои мутақобилан аз ин кор муносибат карда метавонанд, метавонанд истифода шаванд. Ҳар як намунаи ибтидоӣ бо "-" бояд ин тавр муҳофизат карда шавад. (Ҳама пахшкуниҳо бо "-" барои вариантҳои оянда ҷудо карда мешаванд).

Парчами параграфро қувваи барқро ҳамчун шакли резерплат тасвир мекунад. Дар ин ҳолат, асбобҳои мувофиқ дар интерактиви тағйирёбанда нигоҳ дошта мешаванд, ба монанди тавре, ки интизор меравад, интишори он дар интизоршавии expect_out тағйир меёбад . Парчами параметрҳо низ ба даст оварда шудаанд.

Намунаи eof ба амал меояд, ки дар охири файл иҷро мешавад. Намуди eof алоҳида низ метавонад парчами параметриро, ки дар он ҳолат мувофиқ аст, дар сурати ҳангоме, ки чопи баровардани eof муайян карда шавад, мувофиқ аст. Фаъолияти электронии пешфарзӣ "бозгаштан" аст, ба шарте, ки мутақобилан танҳо ба ягон EOF бармегардад.

Вақти намуна вақтхушӣ (дар сонияҳо) ва амалие, ки баъди муддате ягон аломати онро хонда намешавад, ҷорӣ мекунад. Намунаи вергул ба раванди охирини охирин дахл дорад. Вақти муқаррарӣ мавҷуд нест. Вақти муассири "вақтхоҳии" (ки дар амри амри тасвиби интишор ) истифода мешавад, ин вақтро дар бар намегирад.

Масалан, изҳороти зерин мумкин аст, ки ба истифодабарандагони автоматӣ, ки ягон соат ягон чизро навишта натавонистанд, вале ҳанӯз ҳам паёмҳои системаҳои сершуморро мегиранд:

интерактивӣ - $ user_spawn_id timeout 3600 бозгаштан -output $ $ spawn_id

Агар намунаи калимаи калимаи калидӣ бошад ва нифосҳо (бо фармони фарогирии command_nulls ) иҷозат дода мешавад, дар сурати мувофиқати ASCII 0 мувофиқат карда мешавад. Ин имкон медиҳад, ки 0 байт тавассути рамзҳои глобалӣ ё regexp мувофиқ бошад.

Пешниҳоди намунавии парчами- параметри интерфейсро тағйир медиҳад (spawn_id) , ки ба spawn_id мувофиқат мекунад, ки намунаи (ё eof) мувофиқат мекунад.

Амалҳо, ба монанди танаффус ва идома додани сохторҳои идоракунӣ (яъне, барои пешбурди ) тарзи одилона. Бо вуҷуди ин, бозгаштан боиси бозгаштан ба зангирони худ мебошад, дар ҳоле, ки интерпретатсия ба сабабе, ки ба зангирӣ бармегардад, кор мекунад. Масалан, агар "foo proc" даъват шуда бошад, ки он вақт амалиётеро, ки иҷро кардани амалро иҷро кардааст , бармегардонад. (Ин маънои онро дорад, ки агар интерпретатори интерпретатсиякунӣ баргаштан ба аризадиҳанда метавонад ҳамоҳангиро давом диҳад, дар ҳоле ки inter_return интерфейсро ба зангирии худ бармегардонад.)

Ҳангоми муошират , ҳолати хом ба кор бурда мешавад, то ки ҳамаи рамзҳо ба раванди ҷорӣ гузаранд . Агар раванди кунунӣ сигналҳои назорати идоракуниро суст накунад, агар сигнали қатъиро фиристед Барои барқарор кардани он, сигналро давом диҳед (масалан, "kill -CONT"). Агар шумо дар ҳақиқат мехоҳед, ки SIGSTOPро ба чунин раванд (аз ^ ^) ирсол кунед, аввалин кварсаро кш кунед ва баъд барномаи худро давом диҳед. Аз тарафи дигар, агар шумо хоҳед, ки SIGSTOP-ро барои интихоби худ, тарҷумони аввалро даъват кунед (шояд бо истифода аз аломати фирорӣ), ва он гоҳ ^ ^ ро пахш кунед.

Ҷуфти функсияҳои ҷисмонӣ метавонад ҳамчун тарзи истифода бурдани тарҷумон ва иҷро кардани аҳкомҳои интерактивӣ истифода шавад. Ҳолати интиҳои қаблӣ ҳангоми воҳиди ҷуфти ҷуфт-ҷисм иҷро карда мешавад.

Барои суръат, амалҳое, Параметри- почта терминалро ба намуди он, ки пеш аз он коркард шуда буд (resepsly, mode-cooked) кард. Дар хотир доред, ки аломатҳои воридшуда, вақте ки функсия иваз карда мешавад, талаф мешавад (хусусияти нопоки ронандаи терминал дар баъзе системаҳо). Яке аз сабабҳои истифода бурдани -ресӣ аст, агар амалҳои шумо аз тарзи пухта ба амал бароварда шавад.

Парчами -чо рамзҳоро мефиристад, ки ба намунаи зерин ба раванди бозгашти он, ки онҳоро ҳар як хароҷот хондааст. Ин метавонад фоидаовар бошад, вақте ки истифодабаранда бояд раъйҳоро аз намунаҳои қисмии тасвиршуда дида барояд.

Агар намунаи echoed бошад, вале ниҳоят ба охират мувофиқат накунад, аломатҳо ба раванди решавӣ фиристода мешаванд . Агар раванди кашидашуда онҳоро паси сар кунад, истифодабаранда ду маротиба рақамҳоро дидан хоҳад кард. -Оё мумкин аст, ки танҳо дар ҳолатҳое, ки корбар метавонад намунаи ниҳоӣ набошад, мувофиқ бошад. Масалан, ҷудокунии зерин аз rftp, script-recursive-ftp мебошад, ки дар он ҷо истифодабаранда барои ворид шудан ба ~ g, ~ p, ё ~ l, барои ислоҳ кардани, феҳрист ё рӯйхати феҳристи ҷорӣ. Инҳо дур аз фармоишҳои муқаррарии ftp мебошанд, ки истифодабаранда натавонист нест, ки пас аз ҳама чизи дигар, ба истиснои хатоҳо, дар ҳолате, ки онҳо метавонанд танҳо натиҷаро ба назар гиранд.

интерактивӣ {-echo ~ g {getcurdirectory 1} -тего ~ l {getcurdirectory 0} -echo ~ p {putcurdirectory}}

Парчами -nobuffer аломатҳоро ба вуҷуд меорад, ки ба намунаи зерин дар раванди баромадан ба рақамҳо хонда мешаванд.

Ин ба шумо фоиданок аст, вақте ки шумо мехоҳед, ки барномаи худро такрор кунед. Масалан, барои назорат кардани шахсе, ки шахсе занг мезанад (модеми Hayes-style) метавонад истифода шавад. Ҳар боре, ки "atd" дида мешавад, ба скрипт калимаи дигарро ишора мекунад.

{$ a} ($ string []): $ interact_out ($ 1), $ string ['string']

Дар вақти муносиб , истифодаи пештараи log_user беэътибор дониста мешавад. Мутаассифона, интерфакси маҳсулотро барои бақайдгирӣ (фиристодан ба стандарти стандартӣ) маҳдуд месозад, зеро он истифодабаранда намехоҳад, ки ба таври худкор ба таври худкор амал кунад.

Калимаи « -o» ҳар як ҷуфтҳои асосии ҷисмониро барои истеҳсоли раванди ҷорӣ истифода мебарад . Ин метавонад фоидаовар бошад, масалан, ҳангоми муроҷиат бо мағлубкунандаҳо , ки дар давоми сессияи telnet фиристода мешаванд.

Бо гузашти вақт, интерактивӣ интизор аст, ки корбар коркарди Stdin ва хондани стдинги раванди интизорӣ мебошад . Калимаи « -u» (барои "корбар") ба истифодабаранда ҳамчун раванди номбаршудаи баҳси он (ки бояд рамзи кӯҳна) мебошад, ҷолиб мебошад.

Ин имкон медиҳад, ки ду раванди ғайримуқаррарӣ бидуни истифодаи дубора равшан бо ҳам пайваст шавад. Барои бартараф кардани камбудиҳо, Дискҳои пешакӣ ҳамеша ба stderr рафтаанд (ё стдут барои сабт ва муайянкунии баъзе маълумот). Бо ҳамин сабаб, фармоишгари interpreter interactively аз STAD хонда хоҳад шуд.

Масалан, фрейми зерин раванди воридшударо эҷод мекунад. Он гоҳ истифодабарандаро занг зада, намоиш дода намешавад ва дар ниҳоят ба ҳамдигар пайваст мешавад. Албатта, ягон раванд метавонад барои воридшавӣ иваз карда шавад. Масалан, ниҳонӣ имкон медиҳад, ки корбар бе ворид кардани суратҳисоб ва парол кор кунад.

login login set spawn $ spawn_id навъи modem spemn # занг зада ба истифодабаранда пайвастшавии истифодабаранда ба вуруд ба интерактивӣ -u $ login

Барои фиристодан ба протоколҳои гуногун, рӯйхати рамзии рӯйхатеро, Барои ворид шудан ба гурўҳи коғазҳои коғази маҳсулот аз ҷониби як рӯйхати ройгони пешакӣ, ки аз тарафи парчами якум муайян карда шудааст, муайян карда мешавад. (Ҳамон як- фармоиш ва фарогирӣ дар рӯйхат як намуди аломати фармони фармоишро фароҳам меорад, ба истиснои он ки ягон_авр_ро дар функсия муфид намебошанд.) Тамоми парчамҳо ва рангҳо (ё намунаҳо) ба ин маслиҳат то дигар - Парчами воридотӣ пайдо мешавад. Агар ягон фармоиш пайдо нашавад, -гуна нишон медиҳад, ки "$ user_spawn_id-output". (Бо ҳамин монанд, бо намунаҳое, ки дар инҷо мавҷуд нестанд). Агар як адад муайян карда шуда бошад, он $ user_spawn_id. Агар як сония муайян карда шавад, он $ spawn_id -ро барҳам медиҳад. Парчҳои иловагӣ - нишонаҳо метавонанд муайян карда шаванд.

Роҳҳои воридшавии масолеҳи бинокорон барои пешкаш кардани натиҷаи худ ҳамчун $ spawn_id ва $ user_spawn_id (дар баръакс) муқаррар шудаанд. Агар байрақи якҷоя бо байрақи параллелӣ пайдо шавад, аломатҳо аз ин раванд партофта мешаванд.

Парчами -i параграфро барои спавн_id ҷорӣ ҷорӣ мекунад, вақте ки байрақҳои дигар ё фароғатӣ истифода мешаванд. Парчами A -i аломати--ро ишора мекунад.

Ин имкон медиҳад, ки равандҳоеро, ки бо истифода аз рангҳои ғайримустақим истифода мешаванд, тағйир диҳед. (Нишондиҳандаҳои рамзии ғайримутамар дар қисм аз рӯи фармони фармоиш тасвир шудаанд.) Нишонҳои нопурра метавонанд бо параметрҳои -i, -u, -кардашуда ё парчами параметр нишон дода шаванд.

тарҷумон [args]
ба истифодабаранда барои мутақобилан иҷро кардани фармонҳои интизорӣ ва Tcl оварда мешавад. Натиҷаи ҳар фармон ба чоп дода мешавад.

Амалҳо, ба монанди танаффус ва идома додани сохторҳои идоракунӣ (яъне, барои пешбурди ) тарзи одилона. Аммо баргаштан тарҷимаи тарҷумонро ба зангирии худ бармегардонад, дар ҳоле, ки интерпретатори тарҷумон барои занг задан ба варақи бозгашти он меорад. Масалан, агар "foo" ба тарҷумон муроҷиат кунад, ки он вақт амалиётро анҷом дода буд , бармегардад. Дигар фармоиш ба тарҷумон ниёз дорад, ки минбаъд ба амрҳои нав идома диҳад.

Бо нобаёнӣ, тугмаи ду ададро дар бар мегирад. Дараҷаи якум калиди баҳодиҳии арзёбиро тасвир мекунад (яъне, чанд маротиба Tcl_Eval номида шудааст). Дараҷаи дуюм муайянкунандаи таърихи Tcl мебошад. Далел метавонад бо муайянкунии тартиби "фавран1", ки арзиши бозгашти пайдарпаии он мегардад. Агар як изҳорот нусхаҳои кушода, паренҳо, параҳо ё дастгоҳҳо, фаврии дуввумро (бо тарзи пешфарзӣ + +>) бо нав табдил дода шавад. Муштарии якум бо муайянкунии тартиби "prompt2" муайян карда мешавад.

Дар вақти тарҷумон , тарзи пухта истифода бурда мешавад, ҳатто агар хоҳараш бо истифода аз хом истифода мешуд.

Агар стенка пӯшида бошад, тарҷумон баргардад, агар парчамро истифода набарад, дар ин ҳолат далели минбаъдаи такрористода мешавад.

log_file [args] [[-a] файл]
Агар файл ном дошта бошад, log_file дар ин файл калимаи сессияро оғоз мекунад (сар аз он ҷой). Агар log_file ягон сабт дода шавад, сабтро қатъ хоҳад кард. Ҳамаи парвандаҳои пешинаи қаблӣ баста мешаванд.

Ба ҷои номи файл, муайянкунандаи файли Tcl бо истифодаи парчамҳои -тафтан ё сарпӯши ячейка мумкин аст . Ин ба фармоишоти тропикӣ монанд аст. (Маълумоти иловагиро оид ба тухмҳо нигаред.)

Қуввае, ки дар он қуттиҳои -a flag ба қайд гирифта шуд, ки аз ҷониби фармон log_user қатъ карда шуд.

Бо нобаёнӣ, фармоне, ки log_file ба файлҳои кӯҳна, ба ҷои он ки тозакунии онҳоро ба даст орад, барои қулайи имконпазир будан аз рӯйхат дар як вохӯрӣ ва якчанд маротиба ба рӯйхат. Барои тези файлҳо, параграфи овозӣ истифода баред.

Парчами -инфӣ log_file ба тавзеҳ додани тавзеҳоти ахбороти ахбороти охирине, ки дода шудааст, дода шудааст.

log_user -info | 0 | 1
Бо нобаёнӣ муколамаи фиристода / интизорӣ ба стдут баста мешавад (ва агар кушода бошад). Вуруд ба stdout аз ҷониби фармон "log_user 0" ва аз тарафи "log_user 1" бозсозӣ карда мешавад. Гузарвожаи ба logfile ворид карда намешавад.

Парчами саҳифа log_user барои тавзеҳ додани тавзеҳоти ахбороти охирине,

match_max [-d] [-i spawn_id] [size]
андозаи фарқияти (bytes), ки аз тарафи интизорӣ истифода мешавад, муайян мекунад . Бо аризаи андоза , андозаи ҳозира баргардонида мешавад.

Бо парчами -d , ҳаҷми пешфарз муқаррар карда мешавад. (Варианти аввал 2000 мебошад.) Бо парчами -i , андоза барои номи домейн ном гузошта мешавад, вагарна барои раванди кунунӣ муқаррар карда мешавад .

- [spawn_id] [- # spawn_id] [...] барнома [args]
барномаи " args" -ро дар ҷои барномаи ояндаи ҷорӣ, иҷро мекунад. Далелҳои чуқурӣ дар пеши номи фармон, чунон ки агар он пинҳон шуда бошад, қувват мебахшад. Ҳамаи spawn_ids ба истиснои онҳое, ки ҳамчун далелҳо номбар шудаанд, баста мешаванд. Инҳо ба рамзҳои номии номи файл дохил карда мешаванд.

Spawn_ids ба унвони нусхабардорӣ барои барномаи нав ворис мешаванд. Масалан, хатти минбаъда шахсияро иҷро мекунад ва онро бо раванди кунунӣ идора мекунад - гӯед, устоди шахсе.

плуг -0 $ spawn_id -1 $ spawn_id -2 $ шоҳзода spawn_id

Ин аз мутараққии «interact -u» самараноктар аст, аммо он қобилияти кор бо барномасозии барномаро анҷом медиҳад, чунки раванди интизорӣ акнун дар назорат нест.

Дар хотир доред, ки ягон терминали назоратӣ дастрас нест. Ҳамин тавр, агар шумо вуруд ба стандартҳои муқарраршударо аз байн бардоред ё ҷуброн кунед, барномаҳое, ки назоратро кор мекунанд (садақа, вуруд ва ғайра) дуруст кор намекунанд.

парите [-d] [-i spawn_id] [арзиш]
муайян мекунад, ки оё парҳезӣ бояд аз истеҳсоли равандҳои парокандашуда нигоҳ дошта шавад ё холӣ шавад. Агар арзиши сифр бошад, параметрҳо содда карда мешаванд, ба шарте ки он суст нашавад. Бо нархи арзиш , нархи ҷорӣ баргардонида мешавад.

Бо байрақи -d , арзиши параметрҳои муқаррарӣ муқаррар карда мешавад. (Нишондиҳандаи ибтидоӣ 1, яъне, паритсия нест карда намешавад.) Бо параграф- парам , арзиши муколамавӣ барои номи домейн номи домейн таъин карда мешавад, вагарна барои раванди кунунӣ муқаррар карда мешавад .

remove_nulls [-d] [-i spawn_id] [value]
муайян месозад, ки нешҳо аз протсеси пешакӣ пешпардохт ё нигоҳ доштани интизорӣ, expect_out ё interact_out тағир дода мешаванд . Агар арзиш 1 бошад, nulls removed. Агар арзиш 0 бошад, nulls removed нест. Бо нархи арзиш , нархи ҷорӣ баргардонида мешавад.

Бо байрақи -d , арзиши аслӣ муқаррар карда мешавад. (Нишондиҳандаи ибтидоӣ 1, яъне, nulls removed.) Бо байрақи -i , арзиш барои номи домейн номи домейн таъин карда мешавад, вагарна барои раванди кунунӣ муқаррар карда мешавад .

Новобаста аз нусхабардории нусхабардорӣ ва интихоби нусхабардорӣ, ба байрақча ва стдут.

string [-flags] фиристед
Тартибро ба раванди ҷорӣ фиристед . Масалан, фармон

ирсол намоед "hello world \ r"

ба ҳарфҳои, helloworld ба раванди ҷорӣ фиристода мешаванд . (Tcl дорои фармони чопӣ ( формати ном) аст, ки метавонад сутунҳои ихтиёрии мураккабро бунёд кунад.)

Ҳарифон фавран фиристода мешаванд, ҳарчанд, ки барномаҳои вуруд ба воҳиди хати блог то рақамҳои бозгаштан фиристода намешаванд. Хусусияти бозгашти "\ r" ном дорад.

Парчам - далели навбатии тақвимӣ ҳамчун як қатор маънидод ба назар гирифта мешавад. Ҳар як сатр пеш аз он метавонад "-" бошад, ки он дар асл мисли парчам ба назар мерасад. Ин механизми мӯътадилеро муайян мекунад, ки бидуни тасвири онҳое, ки тасодуфан парчелҳо ба назар мерасад, нишон дода мешаванд. (Ҳама пахшкуниҳо бо "-" барои вариантҳои оянда ҷудо карда мешаванд).

Парчами -i эълон мекунад, ки сатр ба номи spawn_id номида мешавад. Агар spawn_id user_spawn_id бошад , ва терминал дар шакли хом аст, хатҳои нави дар сатр ба тарҷумаҳои бозгашти навбатӣ тарҷума шудаанд, то ки онҳо ҳамчун терминал дар намуди пухта пайдо шаванд. Парчами -вав ин тарҷумаро рад мекунад.

Парчами -бахши рақамҳо (0 bytes) мефиристад. Бо нобаёнӣ, як воҳима фиристода мешавад. Тисмент метавонад ба услуби мушаххас нишон диҳад, ки чанд паёмро фиристед.

Парчами парҳезӣ ҳолати мураккабро медиҳад. Ин танҳо мефаҳмонад, ки агар нархҳои ковокӣ ба воситаи "тухмпӯшӣ" -ҳо кушода шудаанд. Агар шумо як раванди маслиҳатпулӣ дошта бошед, шумо бояд барои анҷоми танаффус барои анҷумани Умед истифода баред.

Қувваҳои парчами параметрҳо ба таври «оҳиста» фиристода мешаванд, аз ин рӯ, аз вазъияти умумӣ канорагирӣ кардан мумкин аст, ки компютер аз як воҳиди иловагӣ барои инсоне офарида шудааст, ки ҳеҷ гоҳ наменамояд. Ин маҳсулот бо арзиши тағйирёбандаи "send_slow" назорат мекунад, ки ду рӯйхати унсурҳоро мегирад. Асбоби якум integer, ки шумораи ададҳо ба атомҳо фиристода мешавад. Элементҳои дуввум рақами воқеие, ки шумораи атрҳоро, ки аз он атом фиристода мешавад, бояд ҷудо карда шавад. Масалан, "set_slow {10001}" -ро бо "sends_secow" фиристодани сатрҳо бо 1 милисон дар байни ҳар 10 ҳарф фиристодааст.

Қувваҳои парчами -h барои фиристодан (якбора) ба монанди одаме, ки дар асл хато мекунанд. Бозгашти инсонӣ мисли байни аломатҳо пайдо мешавад. (Алгоритм ба тақсимоти Вейбул асос ёфтааст, бо тағйироте, ки ба ин нармафзори мазкур мувофиқ аст). Натиҷаи мазкур аз рӯи арзиши "send_human" тағйир меёбад, ки панҷ унсури унсуриро мегирад. Ду унсурҳои аввалин миқдори миёнаҳолаи миқдори рақамҳо дар сонияҳо мебошанд. Аввалин бор бо нобаёнӣ истифода мешавад. Дуюм, дар охири калимаҳо истифода бурда мешавад, ки тасаввуроте, ки баъзан дар чунин гузаришҳо рух медиҳанд, истифода мешаванд. Параграфи сеюм як тадриҷан тағйирёбанда аст, ки дар .1 хеле тағйир ёфтааст, 1 ин ки тағйирёбанда ба таври назаррас ва 10 аст, хеле тағйирнопазир аст. Дараҷаи фарқиятҳо 0 то infinity аст. Ду параметрҳои охирон, мутаносибан, ҳадди аксар ва ҳадди миёнаро доранд. Ҳадди ниҳоӣ ва ҳадди охирини охирин ва клипи "вақти охирин" истифода мешаванд. Андозаи ниҳоӣ метавонад аз ҳисоби миёнаи мазкур фарқ кунад, агар ҳадди аққал ва ҳадди ниҳоии клипи кофии клип.

Мисол, фармоиши зерини як навъҳои зуд ва муттасил инъикос меёбад:

set_human {.1 .3 1 .05 2}} - "Ман гурусна ҳастам.

дар ҳоле, ки пас аз зерин мумкин аст пас аз якбора мувофиқ бошад:

set_human {.4 .4 .2 .5 100} -ро пахш кунед - "шабона пӯсти хунук"!

Дар хотир доред, ки хатоҳо мутобиқ нестанд, гарчанде шумо метавонед вазъиятро ислоҳ кунед, ки шумо хатогиҳо ва ислоҳҳоро дар далелҳои ирсолкунӣ ба танзим дароред.

Парчамҳо барои фиристодани аломатҳои нолозим, барои фиристодани танаффусҳо, барои маҷбур кардани маҳсулотҳои суст ва барои маҳсулнокии инсонӣ истисно мебошанд. Танҳо як охирин муайяншуда истифода хоҳад шуд. Ғайр аз ин, ҳеҷ ишораи рақамиро бо парчамҳо барои фиристодани аломатҳои нохун ё танаффусҳо муайян кардан мумкин аст.

Ин як идеяи хубест, ки пеш аз он, ки пеш аз интишори пештара ба раванди интизорӣ равад . интизорӣ интизор хоҳад буд, ки раванди оғоз, вақте ки фиристодани не. Махсусан, агар фиристодани пеш аз оғози раванд иҷро шавад, шумо хатари интиқоли маълумотро рад мекунед. Дар ҳолатҳое, ки барномаҳои интерактивӣ фавран ибтидоӣ пешниҳод намекунанд, шумо метавонед пеш аз фиристодани фиристодани пешакӣ ба суроға фиристед :

# Барои пешгирӣ кардани интиқолдиҳандагон маслиҳатҳо оид ба чӣ гуна вайрон шудан, # ин система барои пароли беруна дархост намекунад. # 5 соат барои иҷро кардан барои анҷом додани телеради тозакунӣ very.secure.gov хоби 5 ирсол намоед

exp_send алока барои фиристодан аст. Агар шумо Expectk ё дигар намуди интихоби Истиқлолро дар муҳити TK истифода мебаред, фиристодани Tk барои ҳадафҳои мухталиф гуногун аст. exp_send барои мувофиқат кардани муҳитҳо пешбинӣ шудааст. Дигар адресҳо барои дигар фармонҳои фиристодани дигар интизорот пешбинӣ шудаанд.

send_error [-flags] string
ба монанди фиристодан , ба истиснои он, ки маҳсулот ба ҷои "stderr", ба ҷои раванди ҷорӣ фиристода мешавад .

send_log [-] string
монанди фиристодан , ба истиснои он, ки сатр танҳо ба файли log фиристода шудааст (нигаред log_file .) Далелҳо беэътибор дониста мешаванд, агар ягон парвандаи парванда кушода нашавад.

send_tty [-flags] string
ба монанди фиристодан , ба истиснои он ки протокол ба / dev / tty на ба раванди ҷорӣ фиристода шавад .

send_user [-flags] string
ба монанди фиристодан , ба истиснои он, ки маҳсулот ба ҷои stdout фиристода мешавад, на раванди ҷорӣ.

сонияҳои хоб
ба скрипт барои миқдори муайяни сонияҳо хоб меорад . Сонияҳо як адади даҳӣ мебошанд. Шаклҳо (ва рӯйдодҳои TK, агар шумо истифода Expectk) кор карда истодаанд ва ҳангоми таваққуф интизоранд.

[args] барнома [args]
раванди наве, ки " блоги барномаро" иҷро мекунад, эҷод мекунад. Стадион, stdout ва stderr он бо интизори пайваст карда шудаанд, то ки онҳо метавонанд бо фармонҳои дигари интизорӣ хонанд ва нависанд. Пайвастшавӣ бо наздик шудан ё агар раванди худ ягон тасвири файлро пӯшонад.

Вақте, ки протокол аз ҷониби пароканда оғоз меёбад, spawn_id variable ба як тасвиргари ин раванд ишора карда мешавад . Раванди аз ҷониби spawn_id тавсифшуда " раванди ҷорӣ " ҳисобида мешавад. spawn_id мумкин аст, ки хонда ё навишта шавад, дар навбати худ, назорати корро таъмин намояд.

user_spawn_id як тағироти умумиест , ки тасвиргари он ба истифодабаранда ишора мекунад. Масалан, вақте ки spawn_id ба ин арзон таъин карда мешавад, интизор меравад , ки мисли expect_user амал мекунад .

Error_spawn_id як тағироти умумиест , ки дорои тасвири, ки ба хатои стандартӣ ишора мекунад, мебошад. Масалан, вақте ки spawn_id ба ин арзон таъин карда мешавад, ба монанди send_error рафтор кунед .

tty_spawn_id як тағироти умумиест , ки дорои тасвиргариест, ки ба / dev / tty ишора мекунад. Агар / dev / tty вуҷуд надошта бошад (масалан, дар cron, дар ва скрипт), then tty_spawn_id муайян нест. Ин метавонад санҷида шавад:

{{info info tty_spawn_id]} {# / dev / tty exists} else {# / dev / tty вуҷуд надорад # эҳтимол дар cron, фирмшавӣ ё клик}

spawn ID коркардро бар мегардонад. Агар ҳеч гуна раванд парешон нашавад, 0 баргардонида мешавад. Spawn_out (ғулом, номи) тағирёбанда номи номи дастгоҳи ғуломро таъин мекунад.

Бо нобаёнӣ, номаълуми ном ва аргументҳои эҷодшуда. Парчами- ииоохо аз коре, ки ба ин кор машғул аст, қатъ мекунад.

Парчами -сонаона боиси истеҳсоли консерваҳо мегардад, ки ба раванди решакардашуда равона карда шудааст . Ин дар ҳама системаҳо дастгирӣ намешавад.

Дар дохили он, тропикӣ як pty -ро истифода мебарад, ҳамон тавре, ки tty истифодабаранда истифода мешавад. Ин аллакай ба кор бурда мешавад, то ки ҳамаи танзимотҳо «секунҷа» (мувофиқи стре (1)) бошанд. Агар stty_init тағир дода шуда бошад, он дар тарзи контексти сттета ҳамчун конфигуратсияи минбаъда шарҳ дода мешавад. Масалан, "hd stun_init raw" муқаррар мекунад, ки терминалҳои равандҳои тараќќикардашуда ба зудӣ оғоз мекунанд. -ттифоти аввалияро дар асоси tty user истифода барад. -ттиттизом ба оғози " sane " баста мешавад.

Одатан, кобед барои иҷро кардан вақти каме мегирад. Агар шумо миқдори муайяни вақтро ба назар гиред, эҳтимол меравад, ки дар он ptys, ки wedged рӯ ба рӯ. Як қатор санҷишҳо оид ба қаллобӣ барои пешгирӣ кардани ногузирҳо бо равандҳои хато иҷро карда мешаванд. (Онҳо ин 10 сонияро барои ҳар як сақф меписанданд). Иҷрои интизорӣ бо интихоби -d , нишон медиҳад, ки интизор меравад , ки чандин даҳшатҳоро дар кишварҳои абарқудрат мушоҳида кунанд. Агар шумо натавонед, ки равандҳоеро, ки ин пютҳо замима шудаанд, кушода наметавонанд, танҳо як маротиба такроран барқарор кунед.

Агар барномаи бомуваффақият комёб шавад, зеро exec (2) ноком (масалан, вақте ки барнома вуҷуд надорад), паёми хато бо роҳи минбаъдаи интерфейси ё интихоби фармоиш, ки агар барнома иҷро шуда бошад ва хабари хатогии тавлидотро содир кунад. Ин рафтори оқибатҳои табиии татбиқи ғурур аст . Соҳибони дохилӣ, пиёзҳои кӯҳна, пас аз он, ки раванди саросарӣ ҳеҷ гуна роҳи алоқа бо раванди аслиро надорад, ба ғайр аз алоқа тавассути spawn_id.

Парчами -е, ки далели навбатии он аст, ҳамчун тасвири файлии Tcl маънидод мекунад (яъне, бо кушодани он ). (Номаълуми файл набояд дигар истифода шавад.) Ин ба шумо имкон медиҳад, ки шумо дастгоҳҳои хом, файлҳо ва қубурҳоро бо нармафзори батарейка бе истифодаи сӯзанак истифода баред. 0 ба он ишора мекунад, ки раванди алоқаманд нест. Вақте, ки пайвастшавӣ ба раванди пӯшидашуда пӯшида шудааст, ин нишонаи Tcl мебошад. Парчами- иаопопен монанд ба ҳамин монанд аст, ба истиснои он, ки вебсайт ба возеҳи файл ишора мекунад, ҳатто баъд аз он, ки домейн пӯшида аст, кушода мешавад.

Парчами-парчами кушода барои кушодани он, вале ҳеҷ гуна равандро сарфаҳм намерасонад. 0 ба он ишора мекунад, ки раванди алоқаманд нест. Spawn_id муқаррарӣ муқаррар карда мешавад.

Spawn_out (ғулом, fd) тағйирёбандаи файл ба номи ғулом мувофиқат мекунад. Он метавонад бо истифодаи "close-slide" пӯшида шавад.

Параграфи- параметрӣ сигналро дар раванди печонидашуда рад мекунад . Дар акси ҳол, сигналҳо рафтори оддиро мегиранд. Нишонҳо дар амри тасмаи танқид номида мешаванд, ба истиснои ҳар як сигнали тақвими алоҳида.

сатҳи баланд
сабабҳои зеринро пешниҳод мекунад, ки пеш аз иҷро шудани он чоп карда мешаванд. (Тағирдиҳии Тcl-ро тағиротҳои тағирёбандаҳо мегузаронад.) Сатҳи сатҳи нишондодро барои пайгирӣ то чӣ андоза фарқ мекунад. Масалан, қоидаи зерин интизор аст, ки ҳангоми ҷустуҷӯи 4 сатҳҳои зангҳои аввал, вале на камтар аз он.

Интишороти "4" script.exp

Парчами -инфӣ боиси ифодаи тавзеҳи далелҳои ахбороти охирине, ки дода шудааст, дода мешавад.

блокҳои стен
дигар намудҳои терминалро ба амри амволи беруна иваз мекунанд.

Бо нобаёнӣ, терминали назоратӣ дастрас аст. Диаграммаҳои дигар метавонанд бо замима карда шаванд "Талабот барои ҳолати он дар натиҷаи фармоиш: Агар ягон талабот талаб карда нашавад ва терминали назоратӣ дастрас бошад, ҳолати пештараи хосиятҳои хом ва echo ба шакли баргардонида мешавад, ки дертар аз тарафи фармоиш истифода бурда мешавад.

Масалан, далелҳо хомӯш карда мешаванд ё терминалро ба ҳолати хом ворид мекунанд. Далелҳо - пӯшида ё пухта ба терминал ба тарзи пухта гузошта мешаванд. Echo and -echo arguments мутаносибан ба таркиби echo ва noecho мегузаронанд.

Намунаи зерин мисолро чӣ тавр муваффақ шудан манъ карда шудааст. Ин метавонад дар дигар скриптҳои автоматӣ барои пешгирӣ кардани паролҳо дар онҳо истифода шавад. (Бештар дар бораи ин дар доираи ХИЗМАТРАСОНИҲОИ АСОСӢ нигаред.)

stty -cho send_user "Парол:" expect_user -re "(. *) \ n" калимаи парол $ expect_out (1, string) stty echo

система args
(1) ҳамчун вуруд ба тарҷума, ба мисли он ки он ҳамчун фармоиш аз терминал навишта шудааст. То он даме, ки ниҳонӣ тамом шавад, интизор мешавад. Вазъияти бозгашти Sh аз он иборат аст, ки exec коркарди мавқеи худро дорад.

Дар муқоиса бо exec, ки stdin ва stdoutро ба скрипт равона мекунад, система бозсозӣ намекунад (ба ғайр аз он ки худи худи сатр нишон дода шудааст). Ҳамин тариқ, истифодаи барномаҳое, ки бояд бевосита ба / dev / tty сӯҳбат кунанд. Бо ҳамин сабаб, натиҷаҳои система дар сабт ба қайд гирифта намешаванд.

Вақтрасӣ [args]
Вақтрасониро бар мегардонад. Ҳеҷ далеле вуҷуд надорад, ки шумораи он даврҳо аз замони баргардонида мешаванд.

Парчами -format як сатреро , ки баргардонида мешавад, муаррифӣ мекунад, вале бо ивази қоидаҳои POSIX барои тарзи курсӣ. Масалан,% a як номгӯи ҳафтагардии кӯтоҳ (яъне, Сат) иваз карда мешавад. Дигарон инҳоянд:

Номҳои ҳафта кӯтоҳмуддат% A номгӯи пурраи ҳафтаи ҳафта% b ном кӯтоҳ карда шуда%% B номии пурраи моҳият% c санаи-санҷиш дар санаи: Wed 6 11:45:56 1993% д рӯзи моҳ (01-31% Ҳ соати (00-23)% I соат (01-12)% j рӯз (001-366)% м моҳ (01-12)% дақиқаи M (00-59)% p ё соат% S сония (00-61) Рӯзи якуми ҳафта (1-7 рӯзи душанбе ҳафтаинаи як ҳафта)% Ҳафтаи ҳафта (00-53, якшанбе аввалин рӯзи як ҳафта як) ҳафтаи як ҳафта як ҳафта (% 5 ҳафта (01-53, стандарти ISO 8601)% w рӯз (0- 6) Ҳафтаи ҳафта (00-53, аввалин рӯзи душанбе як рӯзи ҳафта аст)% x санаи санҷиш: аз якуми сентябри соли 1993 1993% X ба монанди: 23:59:59% солона (00-99) % Y ба монанди: 1993% Z timezone (ё чизе, ки агар муайян нашуда бошад) %% нишонаи пажӯҳишӣ

Диапазони дигар% номаҳдуд нестанд. Дигар рамзҳо тавассути нусхабардорӣ карда мешаванд. Танҳо C-ҳо ба даст оварда шудааст.

Парчами ҳунарҳо як қатор сонияҳоро аз сарчашма мегирад, ки ҳамчун манбаи аз формати формат истифода бурда мешавад. Дар акси ҳол, вақти ҳозир истифода мешавад.

Парчами -gmt қувваи зичи вақтро истифода бурда, вақти зангро истифода мебарад. Бо парчам, вақтхуши маҳаллӣ истифода мешавад.

[tk] сигналҳо]
фармоиши додашударо дар лаҳзаи гирифтани ягон сигналҳои додашуда иҷро мекунад. Фармони мазкур дар доираи ҷомеаи ҷаҳонӣ иҷро мешавад. Агар фармон набошад , амали сигнал баргардонида мешавад. Агар фармон сатри SIG_IGN бошад, сигналҳо беэътибор дониста мешаванд. Агар фармон Сигӣ SD_DFL бошад, сигналҳо ба система фаромӯш мешаванд. сигналҳо ҳам як сигнал ё рӯйхати сигналҳо мебошад. Нишондиҳандаҳо метавонанд ба таври рақамӣ ё симо ҳамчун сигнал (3) муайян карда шаванд. Пешакии "SIG" мумкин нест.

Ҳеҷ далеле вуҷуд надорад (ё инки далелҳо), домҳо рақами сигналии фармони хабарие, ки ҳоло иҷро мешаванд, бар мегардонад.

Парчами клавиатура рамзи бозгашти фармонро дар куҷо сарфи назар аз он, ки фармоиши оғоз ба амал омад, қимати Tcl бозгаштанро истифода мебарад.

Параграфи-фармоиш фармони фармоишро бо истифода аз тарҷумон фаъол мекунад, вақте ки фармони анъанаро иҷро кардан мумкин аст, на он вақте, ки тӯҳфаро эълон мекунанд.

Параграфи фаронсавӣ фармони тозаро ба исми сигнали фармоне, ки ҳоло иҷро шудааст, бармегардонад.

Парчами -сох фармоиши тозаро ба рақами бузурги сигнале, ки таъин карда мешавад, бармегардонад.

Масалан, фармон "троту = send_user" Оuch! "} SIGINT" чоп мекунад "Ouch!" ҳар боре, ки истифодабаранда ^ C -ро пахш мекунад.

Бо нобаёнӣ, SIGINT (ки одатан бо пахшкунии C ^ C) ва сабаби SIGTERM сабаби интизори баромадан мегардад. Ин аст, ки бо дузди зерин, ки бо нобаёнӣ, вақте ки Expect оғоз меёбад.

садақаи {SIGINT SIGTERM}

Агар шумо ишора кунед, ки параметрро истифода баред, SIGINT барои оғоз кардани мубоҳисаи интерактивӣ навсозӣ мешавад. Ин аст, ки ба домҳои зерин:

[tr_debug 1} SIGINT

Тозакунии Debugger метавонад бо роҳи муқаррар намудани муҳити экспресс EXPECT_DEBUG_INIT ба қудрати нави тозагӣ тағйир ёбад.

Шумо метавонед, албатта, ҳар дуи инҳоро танҳо бо илова кардани фармонҳои доманатонро ба скрипти худ бартараф созед. Махсусан, агар шумо "SIGINT" -ро аз худ дур кунед, ин ба домани debugger бартараф хоҳад шуд. Ин хеле фоиданок аст, агар шумо мехоҳед, ки корбаронро аз дастури бевосита ба даст оред.

Агар шумо хоҳед, ки домро ба SIGINT муайян кунед, вале ҳанӯз ба кордиҳанда ҳангоми debugger дашном додан лозим аст:

агар {! [exp_debug]} {протсеси тагирдиҳӣ} SIGINT}

Махсусан, шумо метавонед бо истифода аз баъзе сигналҳои дигар ба бозгашти дубора гузоред.

Тратиб ба шумо имкон намедиҳад, ки амали SIGALRMро, ки он дар дохили Expect Explanation истифода мешавад, бардоред. Фармони қатъӣ ба SIGALRM ба SIG_IGN муқаррар мекунад (ignore). Шумо метавонед онро ба қафо баргардед, то он даме, ки шумо дар муддати минбаъда фармони анбӯҳро қатъ кунед.

Барои иттилооти бештар сигналро (3) бинед.

интизори [args]
то он даме, ки протсеси кашфшуда (ё раванди кунунӣ, агар ному насаб вуҷуд надорад) хотима ёбад.

мунтазам интихоби рӯйхати чор ҳоссаро бар мегардонад. Қисми аввал ин марҳилаи раванди интизор буд. Тибқи дуюм, розигии рамзии мувофиқ мебошад. Дараҷаи сеюм - -1 агар хатогии оператсионӣ амал карда шуда бошад ё 0 otherwise. Агар ҳаљми сеюм бошад, 0 адад, рақами чорум аст, ки вазъиятро аз бар мегирад . Агар дараҷаи сеюм -1 бошад, дараҷаи чорум арзиши хатогие, ки системаи оператсионӣ муайян мекунад. Хатои глобалии тағйирёбии глобалӣ низ муқаррар карда мешавад.

Элементҳои иловагӣ метавонанд дар охири нархи бозгашт аз интизорӣ пайдо шаванд . Элемент 5-юми ихтиёрӣ синфи иттилоотро муайян мекунад. Дар айни замон, арзиши ягонае, ки барои ин элемент инъикос мешавад, дар ин ҳолат ду навъи арзишҳо номи сеҳри C-сабт ва тавсифи мухтасари матнӣ мебошанд.

Парчами -i ин равандро интизор аст, ки ба номи spawn_id номида мешавад. Дар дохили як SIGCHLD дохил карда шудааст, мумкин аст, ки бо истифода аз пардаи реша -1 тамоми равандҳои кашидашуда интизор шавед.

Парчами ҳиҷобӣ интизори ба зудӣ бо нишон додани муваффақияти муваффақ гаштааст. Вақте, ки раванди (дертар) берун аз он, бе зарурати мунтазам интизор шуданаш нобуд хоҳад шуд.

Фармони нигаҳдории муваққатӣ низ метавонад бо истифода аз далелҳо "-i -1" интишор шавад. Бар ивази истифодаи он бо равандҳои тараќќикарда, ин фармон метавонад дар ҳама вақт иҷро карда шавад. Ҳеҷ гуна идора вуҷуд надорад. Бо вуҷуди ин, арзиши бозгашти он метавонад ба раванди ID тафтиш карда шавад .

Либрияҳо

Интизорӣ автоматӣ дар бораи ду китобхонаи сохташуда дар бораи скриптҳои интизорӣ медонад. Инҳо аз тарафи вебсайтҳое, ки дар тағйирёбандаҳои exp_library ва exp_exec_library номбар шудаанд, муайян карда мешаванд. Ҳар дуи онҳо маънои файлҳои коммуналӣ, ки метавонанд аз тарафи дигар скриптҳо истифода шаванд.

exp_library файлҳои мустанадаи мустақилро дар бар мегирад. exp_exec_library дорои файлҳои меъморӣ мебошад. Вобаста аз системаи шумо, достонҳо метавонанд пурра бавосита бошанд. Мавҷудияти файл $ exp_exec_library / cat-buffers тасвир мекунад, ки оё шумо / bin / кали шумо аз рӯи фармоиш.

МУЛОҲИЗА

Муайян кардани варақҳо барои таҳрирҳои матнии матнӣ дастрас аст. Тасвиби тарҷумаи Vgrind, ки бо тақсимоти интизорӣ таъмин шудааст, дуруст аст, шумо метавонед онро истифода баред:

Феҳристи парванда

Мисолҳо

Ин бисёр равшан аст, ки чӣ гуна ҳама чизро дар якҷоягӣ, ки саҳифаи адвокат тасвир мекунад. Ман шуморо тавсия медиҳам, ки намунаҳоро дар намунаи намунаи тақсимоти интизорӣ бихонам . Баъзе аз онҳо барномаҳои воқеӣ мебошанд. Дигарон танҳо намунаи техникаҳои муайян ва албатта, як ҷуфти оддист Файл дар INSTALL дорои якчанд дақиқаи фаврии ин барномаҳо мебошад.

Нусхаҳои интизорӣ (ниг. Аломати ALSO ) низ муфид мебошанд. Ҳангоме ки баъзе ҳуҷҷатҳо матнро истифода мебаранд, ки ба вариантҳои пештараи таваққуфи муқараршударо истифода мебаранд, тафсири ҳамоҳангӣ то ҳол идома дорад ва ба ҷузъиёти бештар аз ин саҳифа меравад.

Кавказ

Extensions метавонанд бо номҳои фармоиши интизорӣ шаванд. Масалан, фиристодани Tk барои ҳадафҳои мухталиф гуногун аст. Бо ин сабаб, аксарияти фармоиши интихоби инчунин "exp_XXXX" дастрас мебошанд. Фармонҳо ва омилҳое, ки сар карда аз «exp», «интерактив», «тӯҳфаҳо» ва «вақтхушӣ» надоранд. Агар номҳои васеъро истифода баред, агар шумо ба ин мутобиқат дар байни муҳитҳо ниёз доред.

Интизорӣ намуди назарраси либералиро фаро мегирад. Махсусан, тағироте, ки бо фармонҳои махсус ба барномаи Expect readers аз аввал аз доираи маҳал дарёфт карда мешавад, ва агар дар ҷодаи ҷаҳонӣ пайдо нашавад. Масалан, ин ниёз ба ҷойгиркунии "Timeout global" дар ҳар амале, ки шумо менависед, интизор аст . Аз тарафи дигар, тағиротҳои навишташуда ҳамеша дар доираи маҳал мебошанд (агар "фармони" глобалӣ "дода нашавад). Масъалаи аз ҳама маъмул ин сабаби он вақте ки дар таркиби протсес иҷро карда мешавад. Чанде пеш аз он, профилактиви спавн_ид дигар вуҷуд надорад, аз ин рӯ, раванди саросарӣ танҳо аз сабаби таркиб дастрас нест. Илова кардани "spawn_id global" ба чунин тартиб.

Агар шумо тавонед қобилияти мултиплексиро ба кор баред (яъне, системаи шумо дастгирӣ намекунад (BSD *. *), Poll (SVR> 2), ва ё чизе баробар аст), интизорӣ танҳо як раванди ягонаро назорат мекунад. Дар ин ҳолат, кӯшиш кунед, ки танзим карда шавад spawn_id , ва шумо бояд равандҳои тавассути exec иҷро кардашударо иҷро накунед , агар раванди саратонро давом диҳед. Ғайр аз ин, шумо наметавонед аз якчанд равандҳо (аз он ҷумла истифодабаранда ҳамчун як) интизор шавед .

Параметрҳои терминал метавонанд ба скриптҳо таъсири калон расонанд. Масалан, агар воҳима барои сабт кардани эзоҳ навишта шуда бошад, он шубҳанок аст, агар echoing хомӯш карда шавад. Бо ин сабаб, қувваҳои умедворкунанда параметрҳои терминали терминалро бо тарзи пешфарз. Мутаассифона, ин метавонад барои барномаҳои дигар ногузир монеа шавад. Мисол, ҷилди офтоб мехоҳад тағйироти "оддии" тағйирёбандаҳоро тағйир диҳад: навъҳои нав ба ҷойҳои нави ҷойгиршавӣ ба навъҳои нав мутобиқ карда мешаванд, ва такрори он маъқул нестанд. Ин имкон медиҳад, ки як воҳиди электрони барои таҳрир кардани хати воридшударо истифода барад. Мутаассифона, интизор меравад, ки ин тасаввур карда нашавад.

Шумо метавонед аз он интизор шавед, ки параметрҳои муқаррарии параметрҳои терминалро аз байн намебаранд, аммо шумо бояд ҳангоми таҳия намудани иншоотҳо барои чунин шароит хеле эҳтиёт бошед. Дар сурати эмиссияҳо, вобаста аз чизҳое, ки ба монанди такрори рамзҳо ва хати ҳарфҳои ахборӣ аз якдигар дуранд.

Фармоишҳое, ки далелҳоеро қабул карданд, ки ба рӯйхати ягонаи (вариантҳо ва мутақобила ) интишор карда мешаванд, барои муайян кардани он, ки оё рӯйхат як далели зиёд ё зиёд дорад. Гирдиҳӣ танҳо дар ҳолате, ки вақте рӯйхат ҳақиқат як далели ягонаеро ифода мекунад, ки дорои якчанд рақами \ n-ро бо аломатҳои ғайричашмдошт дар байни онҳо намояндагӣ мекунад, хато нест. Вале ин маънои кофӣ намебошад, аммо далели "-нобраз" метавонад барои як далели яктарафа, ҳамчун далели ягона истифода бурда шавад. Ин метавонад тасаввур карда шавад, ки бо коди тавлидшаванда истеҳсол карда шудааст. Ҳамин тариқ, -сохтани як далели яктарафа ба монанди якчанд намудҳо / амалҳо ба амал меоянд.

Хабари

Ин дар ҳақиқат озмоиши номнависии "ҷинс" (барои "Smart Exec" ё "Send-Expect") буд, вале ҳисси хуб (ё шояд фақат порнитализм) ғалаба кард.

Дар баъзе системаҳо, вақте ки пӯшида пароканда аст, аз он шикоят мекунад, ки қобилияти дастрасӣ надоштанро надорад. Ин маънои онро дорад, ки системаи шумо як механизми барои гирифтани tty control, ки интизор нест, дар бораи он намедонанд. Лутфан он чизеро фаҳмед, ва ин маълумотро ба ман баргардонед.

Ultrix 4.1 (на камтар аз нусхаҳои охирини гирду атрофи инҷониб) вақти зиёдро аз 1000000 ба назар мегирад, ки 0 баробар аст.

Агар UNIX 4.0A (ва эҳтимолан дигар версияҳо) ройгонро тақсим накунанд, агар шумо як SIGCHLD-ҳандаҳоро муайян кунед. Барои маълумоти бештар ба саҳифаҳои имейл нигаред.

IRIX 6.0 ҳаққи пинҳонии дурустро иҷро намекунад, то он вақте, ки кӯшиш кунед, ки кӯшишҳоеро, ки пештар аз тарафи касе истифода бурд, ба амал меорад. Навсозии IRIX 6.1.

Телnet (танҳо дар SunOS 4.1.2 танзим карда мешавад), агар TERM муқаррар карда нашавад. Ин мушкилоте, ки дар секунҷа, дар ва скриптҳои Cgi аст, ки ТЕРМ муайян намекунад. Ҳамин тавр, шумо бояд онро равшан созед - ба кадом намуди маъмулӣ мувофиқат намекунад. Он бояд танҳо ба чизи муқаррарӣ таъин карда шавад! Баъзе мавридҳо барои аксари ҳолатҳо кофӣ ҳастанд.

env (TERM) vt100

Маслиҳат (танҳо дар зери BSDI BSD / OS 3.1 i386 тасдиқ шудааст) овезон аст, агар SHELL ва HOME ҷойгир карда намешаванд. Ин мушкилоте, ки дар секунҷа , дар ва скриптҳои Cgi аст , ки ин тағйирёбии муҳити атрофро муайян намекунад. Ҳамин тариқ, шумо бояд онҳоро ба таври равшан тасаввур кунед - ба кадом намуди маъмул мувофиқат намекунад. Он бояд танҳо ба чизи муқаррарӣ таъин карда шавад! Баъзе мавридҳо барои аксари ҳолатҳо кофӣ ҳастанд.

env (SHELL) / bin / sh ҳиссаи эфири (HOME) / usr / local / bin

Баъзе амалҳои ptys тарҳрезӣ шудаанд, то ки ядроиро аз ҳар 10 то 15 сония ҷудо кунад (рақами воқеан татбиқшаванда вобаста аст) баъд аз раванди тасвиркунандаи файл. Ҳамин тавр барномаҳои тавлидӣ ба монанди

хоби санаи кӯҳӣ 20 интизор аст

нахоҳад монд. Барои пешгирӣ кардани ин, барномаҳои ғайримаъмулӣ бо exec, ба ҷои пахш кардан . Ҳангоме ки чунин ҳолатҳо ҳассосанд, дар амал ҳеҷ гоҳ ягон вазъияте пайдо нашуд, ки натиҷаҳои ниҳоии барномаҳои ҳақиқии интерактивӣ бо сабаби ин рафтор гум мешаванд.

Аз тарафи дигар, Cray UNICOS плитаҳои ҳар як маҳсулоте, ки нусхабардорӣ мекунанд, фавран пас аз раванди тасвир кардани файл қатъ карда мешавад. Ман инро ба Крэй ном гузорам ва онҳо дар коркард кор мекунанд.

Баъзан як таъхир дар байни фаврӣ ва ҷавоб додан, масалан, вақте ки интерфейси tty тағъироти танзимоти UART ё ҳамоҳангии сатҳҳои baud тавассути ҷустуҷӯи сагҳои оғоз / қатъ. Одатан, ҳамаи ин талаботест, ки барои як ё дуюм хоб. Технологияи мустаҳкам аз боз ҳам пур кардан то он даме, ки сахтафзор барои қабул кардани даромад омода аст. Намунаи зерин ҳар ду стратегияро истифода мебарад:

Ирсоли "суръати 9600 \ r"; хоби 1 ҳушдор медиҳад {timeout {send "\ r"; exp_continue} $ prompt}

Трап-коди бо фармоне, ки дар Тлл-ҳо рӯй дод, ба монанди хоби ба кор намебарад. Масъалаи он аст, ки дар сурати давравӣ, Tcl рамзҳои бозгашти аз handlers чун async кашф. Огоҳӣ барои пароканда кардани парчам дар рамзи танқид аст. Пас аз он пас аз фармони (яъне, хоби) фавран парчамро тафтиш кунед.

Фармоишҳои эҳсосӣ ба назар мерасанд ва дар маҷмӯъ мафҳумҳои вақтхушӣ надоранд.

& # 34; ҲАМЧУНҲОИ АСОСӢ & # 34;

Якчанд чизро дар бораи интизорӣ вуҷуд дорад , ки ғайриимкон аст. Ин фасл кӯшиш мекунад, ки баъзе аз ин чизҳоро бо якчанд пешниҳодҳо ҳал кунад.

Масъалаи умумии умумиҷабҳа ин омилҳоро чӣ гуна тасаввур мекунад. Азбаски инҳо гуногунанд, гуногунии одамон ва снарядҳои гуногун, печидагии автоматизатсияи рогин бе огоҳии фаврӣ душвор аст. Конвенсияи оддист ин аст, ки истифодабарандагон истифодаи изҳори мунтазамро тавсиф кунанд (аз ҷумла, охири он) дар муҳити муассири EXPECT_PROMPT. Кодекс ба монанди зерин истифода бурда мешавад. Агар EXPECT_PROMPT вуҷуд надорад, рамзи ҳанӯз имконияти хубе барои дуруст кор кардан дорад.

Дар ин ҷо шумо метавонед танзимотро бо $ env (EXPECT_PROMPT)} интизор шавед $ prompt

Ман шуморо тавсия медиҳам, ки тарзҳои интизорӣ , ки дар охири он чизе, ки шумо мебинед, интишор кунед. Ин имкон медиҳад, ки пеш аз дидани ҳама чиз ба саволҳо ҷавоб диҳед. Илова бар ин, вақте ки шумо метавонед саволҳоро пеш аз дидани онҳо ба саволҳо ҷавоб диҳед, агар шумо барвақт ҷавоб диҳед, ҷавоби шумо шояд дар миёнаи савол пайдо шавад. Ба ибораи дигар, муколамаи ногузир дуруст аст, вале назар ба назар мерасад.

Аксарияти ваъдаҳо дар охири харакати фосила дар бар мегиранд. Масалан, фавр аз ftp - f, 't', 'p', '>' ва. Барои мувофиқ кардани ин ашё, шумо бояд ҳар яке аз ин аломатҳо ҳисоб кунед. Ин хатоги умумӣ нест, ки блогро дар бар гирад. Хориҷро бо таври равшан ба ҷои худ гузоред.

Агар шумо формулаи формулаи X * -ро истифода кунед, * ҳамаи ҳаҷмро аз охири X ба ашёи охирин гирифтааст. Ин маънои онро дорад, ки сигнали менависад, вале метавонад якбора пазироӣ кунад, зеро ибораи "охирин чизи гирифташуда" вобаста ба суръати компютер ва коркарди I / O ҳам аз ҷониби ядрои ва ронандаи дастгоҳ фарқ мекунад.

Махсусан, одамон намехоҳанд, ки ҳосили барномаро ба маҷмӯи калимаҳои (atomic) гиранд, вақте ки воқеан аксари барномаҳоро як варақаи ҳаҷмро як маротиба месанҷанд. Тасвири ин аст, ки * дар шакли параграфи қаблӣ танҳо охири хати кунун мувофиқ бошад, гарчанде ки назар ба он зиёдтар бошад, зеро дар вақти бозии ҳама маҳсулоте,

интизори он нест, ки харољоти минбаъдаро давом дињад, агар намунаи онњоро ба он љо бидињед.

Ҳатто вобаста ба таснифоти рангӣ, нодуруст аст. На танҳо барномаҳо на кам аз ваъдаҳо дар бораи намуди тасвири онҳо кор мекунанд, аммо сигналҳои система метавонанд хатҳои зеркашӣро вайрон кунанд, то ки хатҳои дар ҷойҳои тасодуфӣ ҷойгиршавандаро вайрон кунанд. Ҳамин тариқ, агар шумо метавонед якчанд сатрҳои охирини фавриро ҳангоми навиштани намоишҳо нишон диҳед, хуб мебуд, ки ин корро анҷом диҳед.

Агар шумо интихоби намоишро дар протоколҳои охирини барнома интизор шавед ва барнома ба ҷои дигар барорад, шумо наметавонед онро бо калимаи калидии вақт муайян кунед . Сабаб он аст, ки интизори вақт нахоҳад буд - ба ҷои он, нишонаи eof хоҳад шуд . Онро истифода баред. Ҳатто беҳтар аст, ҳар дуро истифода баред. Бо ин роҳ, агар хати доимии кӯчонидашуда бошад, шумо бояд хатогии худро таҳрир кунед.

Нишондиҳандаҳо одатан ба бозгашти тронзитӣ, пайдарҳамии сақфҳо, ки ҳангоми ронандаи терминал дода мешаванд, табдил меёбанд. Ҳамин тавр, агар шумо хоҳед, ки намунае, ки ба ду сатр мувофиқат кунад, аз чоп, "printf" ("foo \ nbar"), шумо бояд намунаи "foo \ r \ nbar" -ро истифода баред.

Тарҷумаи монанд ҳангоми хондан аз expect_user . Дар ин ҳолат, вақте ки шумо баргаштан бармегардонед, ба он нависед. Агар интизор бошад, ки ба барномае, ки терминалро ба ҳолати хом дохил мекунад (ба монанди telnet) мегузарад, он мушкилоте хоҳад буд, зеро барнома интизор аст, ки баргардонидани ҳақиқӣ. (Баъзе барномаҳо дар ҳақиқат бахшида мешаванд, ки онҳо ба таври автоматӣ ба навъҳои нави баргаштан табдил хоҳанд ёфт, аммо аксар намебинанд.) Мутаассифона, роҳи ягонаи муайян кардани он ки терминали он ба ҳолати хом ҷойгир аст, вуҷуд надорад.

Баръакс, бо истифода аз дастгоҳҳои нав бо ҷойгиркунии нав, ҳалли он аст, ки фармони "хом хӯрда" -ро, ки тарҷумаро қатъ мекунад, истифода барад. Аммо, ин маънои онро дорад, ки шумо аллакай хусусиятҳои хати таҳририро ба даст намеоред.

Интерфакс бевосита ба терминали худ ба намуди хом ҷойгир аст, то ин мушкилот ба миён наояд.

Ин аксар вақт барои махф нигоҳ доштани паролҳо (ё маълумоти дигари хусусӣ) дар скриптҳои мунтазир аст . Ин тавсия дода намешавад, зеро ҳама чизҳое, ки дар компютер сабт шудааст, ба касе дастрас аст. Ҳамин тариқ, интерактивӣ ба истиноди парол аз як скрипт фикри аҷибтар аз он аст, Бо вуҷуди ин, баъзан чунин якҷоя мондан имконпазир аст.

Мутаассифона, системаи файлии UNIX вуҷуд надорад, ки бевосита офаридани скриптҳое, ки иҷро карда метавонанд, вале новобаста аз он надоранд. Системаҳое, ки сутунҳои силсилаи сақфҳоро дастгирӣ мекунанд, метавонанд ба таври зайл ба таври зерин кӯшиш карда тавонанд:

Навъи интизорӣ (яъне маълумоти махфӣ) ба таври оддӣ созед. Ҳуқуқҳои худро ба 750 (-rwxr-x ---) ва дорои як гурӯҳи боваринок, яъне гурезе, ки онро хондан мумкин аст, дошта бошад. Агар лозим бошад, бо ин мақсад гурӯҳи навро таъсис диҳед. Next, бо скрипти як / bin / sh созед, бо иҷозатҳои 2751 (-rwxr-s - x), ки ҳамон як гурӯҳи пештара дорад, эҷод кунед.

Натиҷа аст, ки скриптест, ки аз ҷониби касе иҷро карда мешавад (ва хонда мешавад). Ҳангоми хондани он, ин скриптро интизор аст.

& # 34; ҲУҶҶАТҲОИ АСОСӢ & # 34;

Tcl (3), лутфан (3)
"Таҳлили интизорӣ: Барнома оид ба автоматӣ барои барномаҳои интерактивӣ" аз ҷониби Дэвид Libes, саҳ. 602, ISBN 1-56592-090-2, O'Reilly ва Associates, 1995.
"интизори: Ин функсияҳои бетаъхирнишинии interactivity" аз тарафи Don Libes, даъвати Конфронси ИМА оид ба ИМА, Анаэим, Калифорния, 11-15 июн, 1990.
"Истифодаи интизорӣ барои идоракунии системаҳои системавӣ" аз ҷониби Д Lib Libes, даъвати Конфронси Идораи Низомии Системаи Опенсии Системаи Опенсии 1990-ум, Колорадо Спрингс, Колорадо, 17-19 октябри соли 1990.
"Ҷавонӣ": "Ҷорӣ намудани забони фаронсавӣ" аз тарафи Ҷон Овешхут, даъвати Конфронси USENIX 1990, Вашингтон, DC, 22-26 январи соли 1990. Ман "интизорӣ: Барномаҳои контроли барномаҳои интерактивӣ" аз ҷониби Дэвид Либес, системаҳои компютерӣ , Vol. 4, №2, Донишгоҳи Калифорния оид ба матбуот, Ноябри соли 1991. Ман «Барномаҳои санҷишӣ ва мутобиқгардонии санҷиши мутобиқат», аз ҷониби Дэвид Либес, даъвати Конфронси ИМА оид ба ҳамкории ИМА дар соли 1992, Сан-Антонио, TX, June 12-15, 1992. I "Kibitz - Барномаҳои бисёрҷониба интерактивӣ бо якҷоягӣ", аз тарафи Дев Лебес, Software - Practice & Experience, Ҷон Вилли ва Сонҳо, Вест Сюзанс, Англия, Vol.

23, 5 май, майи соли 1993. Ман «Бозгашти барномаҳои Tcl», аз тарафи Дэвид Либес, Протоколҳои ТИК / Tk Workshop, Berkeley, CA, 10-11 июни соли 1993.

ХОҶАГӢ

Дэвид Левес, Донишкадаи миллии Стандарт ва Технология

ШАҲРИ ҚӮРҒОНТЕППА

Бо шарофати John John Ousterhout барои Tcl ва Scott Paisley барои ваҳй. Бо Роб Савой барои рамзи autoconfiguration интизорӣ ба шарофат.

Феҳристи таърихӣ бисёре аз таҳаввулоти интизорӣ баҳогузорӣ мекунад . Ин хондани шавқовар ва метавонад ба шумо барои ин нармафзор бештар фаҳмонад. Бо шарофати мардуме, ки дар он нома навишта шудаанд, ки маро ба хатогиҳои бесифат фиристодаанд ва кӯмаки дигар медоданд.

Тарҳрезӣ ва амалисозии интизорӣ аз ҷониби ҳукумати ИМА пардохт карда шуд ва бинобар ин, дар соҳаи домейнҳо ба амал омад. Аммо муаллиф ва НИИ агар кредиторонро дар ин барнома истифода баранд, ё ин ки аз он истифода бурда мешаванд.