Ntuziaka Linux / Mịịka Unix chọrọ

Olileanya bụ mmemme nke na-ekwu okwu na mmemme mmemme ndị ọzọ dịka ihe ederede. N'ịgbaso edemede ahụ, Olileanya mara ihe a ga-atụ anya site na mmemme yana ihe nzaghachi ziri ezi kwesịrị ịbụ. Asụsụ a sụgharịrị asụgharị na-enye usoro ntanetị na ọkwa dị elu maka izizi okwu. Tụkwasị na nke ahụ, onye ọrụ ahụ nwere ike ijide ma na-emekọrịta ozugbo mgbe achọrọ ya, mgbe ọ laghachiri nchịkwa na edemede ahụ.

Atụ anya bụ ngwakọta nke Atụ anya na Tk. Ọ na-akpa àgwà dị ka ọchịchọ anya na Tk. Enwere ike iji ya mee ihe na C ma ọ bụ C + na-enweghị Tcl.

Aha "Na-atụ anya" sitere n'echiche nke iziga / na-atụ anya usoro ndị uucp, kermit na ndị ọzọ modem control programmụ. Otú ọ dị n'adịghị ka uucp, A na-atụ anya ka a na-atụ anya ya ka o wee nwee ike ịrụ ọrụ dị ka iwu onye ọrụ na usoro ọ bụla na ọrụ dị n'uche. Olileanya nwere ike ikwu ọtụtụ ihe omume n'otu oge ahụ.

Ihe Ị Na-atụ Anya Ya Ga-eme

Dịka ọmụmaatụ, ebe a bụ ụfọdụ ihe iwu nwere ike ime:

E nwere ọtụtụ ihe kpatara na sheba enweghị ike ịrụ ọrụ ndị a. Ihe nile nwere ike ime.

N'ozuzu, Echere na ọ bara uru maka ịme ihe ọ bụla nke chọrọ mmekọrịta n'etiti usoro ihe omume na onye ọrụ ahụ. Ihe niile dị mkpa bụ na enwere ike ịmekọrịta mmekọrịta ahụ n'usoro ihe omume. Olileanya nwere ike inyeghachi onye ọrụ ahụ ka ọ ghara ịchịkwa ya ma ọ bụrụ na ọ kwụsịghị usoro ihe a. N'otu aka ahụ, onye ọrụ ahụ nwere ike weghachite akara na edemede n'oge ọ bụla.

Njikere

Na-atụ anya na-agụ cmdfile maka ndepụta nke iwu iji gbuo. Enwere ike ịmanye anya na usoro ndị na-akwado #! nchịkọta site na ịde ederede dị ka ihe arụ ma na-eme akara mbụ na edemede ahụ:

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

N'ezie, ụzọ ga-akọwa n'ụzọ ziri ezi ebe echere ndụ. / usr / mpaghara / biini bụ naanị ihe atụ.

The -c ọkọlọtọ na-ebute iwu a ga-egbu n'ihu ọ bụla n'ime edemede. A ga-ede iwu ahụ ka ọ ghara igbochi ịkwatu ya. A nwere ike iji nhọrọ a mee ọtụtụ ugboro. A ga-egbu iwu ọtụtụ na otu -c site nawapụ ha na semicolons. A na-egbu iwu na iwu ha na-egosi. Mgbe ị na-eji Expectk, a na-akọwa nhọrọ a dịka -command.

The flag -d flag na-enyere ụfọdụ nchọpụta diagnostic, nke bụ isi na-arụ ọrụ n'ime ọrụ nke iwu dị ka na-atụ anya ma na-emekọrịta. Ọkọlọtọ a nwere otu mmetụta ahụ dị ka "exp_internal 1" na mmalite nke nsụgharị Atụ anya, gbakwunyere mbipute nke Atụ anya ka e bipụtara.

Ụkpụrụ -D ahụ na-enyere onye nbughari mmekọrịta. Uru ọnụọgụ kwesịrị ịgbaso. Onye nbufu ahụ ga - ejide ya tupu usoro Tcl ọzọ ma ọ bụrụ na uru ahụ abụghị efu ma ọ bụ ma ọ bụrụ na enwere C ma ọ bụ nkwụsịtụ ya, ma ọ bụ iwu ọghachị ọzọ kwesịrị ekwesị na-egosi na edemede ahụ. Mgbe ị na-eji Expectk, a na-akọwa nhọrọ a dịka - Debug.

The -f ọkọlọtọ na-ebupụta otu faịlụ nke ị ga-agụ iwu. Ọkọlọtọ n'onwe ya bụ nhọrọ n'ihi na ọ bụ naanị uru mgbe ị na-eji #! ederede, ka e wee nwee ike iji arụmụka ndị ọzọ nye iwu. Mgbe ị na-eji Expectk, a na-akọwa nhọrọ a dị ka -file.

Site na ndabara, a na-agụ faịlụ ntụziaka n'ime ebe nchekwa ma gbuo ya n'ozuzu ya. Ọ bụ mgbe ụfọdụ na-achọsi ike ịgụ faịlụ n'otu usoro n'otu oge. Iji manye faịlụ ndị na-emeghị ihe iji mee ihe n'ụzọ a, jiri bọtịnụ -b. Mgbe ị na-eji Expectk, a na-akọwa nhọrọ a dị ka -buffer.

Ọ bụrụ na a na-enye eriri "-" dị ka aha njirimara, a na-agụ ntụziaka dị n'usoro kama. Jiri "./-" iji gụọ site na faịlụ a kpọrọ "-".

The-flag na-atụ anya na ị ga-emekọrịta ngwa ngwa maka iwu kama ịgụ ha site na faịlụ. A na-eme ka nkwụsị site na iwu nkwụsị ma ọ bụ na EOF. A na-eche ọkọlọtọ -a ọkọlọtọ ma ọ bụrụ na ejighi faịlụ faili ma ọ bụ -c. Mgbe ị na-eji Expectk, a na-akọwa nhọrọ a dị ka -interactive.

- nwere ike iji mee ka njedebe nke nhọrọ ahụ gafere. Nke a bara uru ma ọ bụrụ na ịchọrọ ịgafe arụmụka nhọrọ dịka ederede gị ma ọ bụrụ na ịtụgharị ya site na Ịchọ. Enwere ike itinye nke a na ntinye! akara iji gbochie nkọwa ọ bụla ọkọlọtọ site Na-atụ anya. Dịka ọmụmaatụ, ndị na-esonụ ga-ahapụ arụmụka mbụ gụnyere aha aha na agbanwe agbanwe.

#! / usr / mpaghara / bin / na-atụ anya -

Rịba ama na a ga- ahụrịrị ememme getopt (3) na-eme (2) mgbe ị na-agbakwụnye arụmụka na #! akara.

A na-emepụta faịlụ $ exp_library / expect.rc na akpaghị aka ma ọ bụrụ na ọ dị ugbu a, ma ọ bụrụ na-eji ọkọlọtọ -N. (Mgbe ị na-eji Expectk, a na-akọwa nhọrọ a dị ka -NORC.) Ozugbo nke a gasịrị, faịlụ ~ / .expect.rc na-emegharị ya na akpaghị aka, ma ọ bụrụ na-eji ọkọlọtọ-eji ọkọlọtọ. Ọ bụrụ na akọwapụta gburugburu ebe obibi DOTDIR, a na-emeso ya dịka ndekọ na .expect.rc na-agụ site na ya. Mgbe ị na-eji Expectk, a na-akọwa nhọrọ a dịka --norc. Nkiri a na-eme naanị mgbe ọ kpesịrị flags ọ bụla -c.

-v na-atụ anya ịbipụta ya nọmba mbipụta na ụzọ ọpụpụ. The flag ọkọlọtọ na Expectk, nke na-eji ọkọlọtọ ọkọlọtọ aha, bụ -version.

A na-ahazi args nhọrọ na ndepụta na echekwa na agbanwe aha ya bụ argv na. a na-ebunye argc n'ogologo nke argv.

A kọwara Argv0 ịbụ aha edemede ma ọ bụ ọnụọgụ ma ọ bụrụ na edeghị ederede. Dịka ọmụmaatụ, ihe ndị na-esonụ na-esipụta aha edemede na mbụ arụmụka atọ:

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

Iwu

Na-atụ anya jiri Asụsụ Iwu Iwu. Tcl na-enye usoro nchịkwa (ma ọ bụrụ na, maka, ezumike), nyocha nkwupụta na ọtụtụ atụmatụ ndị ọzọ dị ka nlọghachi na usoro definition. Iwu eji ebe a ma akọwaghị (setịpụrụ, ma ọ bụrụ, exec) bụ iwu Tcl. Olileanya na-akwado iwu ndị ọzọ. Ọ gwụla ma ọ bụrụ na edeghị ya n'ụzọ doro anya, iwu weghachite eriri efu.

E depụtara iwu iwu ka ha wee nwee ike ịchọta ngwa ngwa. Otú ọ dị, ndị ọrụ ọhụrụ nwere ike ịchọpụta na ọ dị mfe ịmalite site na ịgụta nkọwa nke spawn, zipu, atụ anya, na imekọ ihe, n'usoro ahụ.

nso [-slave] [-onexec 0 | 1] [-i spawn_id]

mechie njikọ na usoro nke ugbu a . Mmemme mmemme kachasị mma ga-achọpụta EOF na stdin na ụzọ ha si apụ; ya mere ọ na-adịkarị mma igbu usoro ahụ . Ọkọlọtọ-ọkọlọtọ na-ekwupụta usoro iji mechie kwekọrọ na spawn_id aha.

Ma na-atụ anya ma na-emekọrịta ga-achọpụta mgbe usoro nke ugbu a na- apụ ma na-emecha ya kpamkpam, ma ọ bụrụ na ị na-egbu usoro site na, kwuo, "exec kill $ pid", ịkwesịrị ịkpọpụta ya n'ụzọ doro anya .

Ụkpụrụ -onexec ahụ na-ekpebi ma ọ bụ emeghe spa id na-emechi ma ọ bụ ma ọ bụrụ na usoro ahụ kpuchie. Iji hapụ oghere spawn id, jiri uru 0. Njirimara nọmba integer na-eme ka spawn mechie na usoro ọ bụla.

Akara ọkọlọtọ na-ekpuchi ohu nke ejikọtara ya na spawn id. Mgbe ejiri njikọ ahụ, a na-emechi ohu ahụ ma ọ bụrụ na ọ ka na-emeghe.

Na agbanyeghị ma njikọ ejirila mechie ma ọ bụ n'ụzọ doro anya, ị ga-akpọ nkwụsị iji kpochapụ oghere usoro kernel kwekọrọ. Iwu iwu ahụ anaghị akpọ nkwụsị ebe ọ bụ na enweghi nkwa na imechi njikọ njikọ ga-eme ka ọ pụọ.

debug [[mara] 0 | 1]

na-achịkwa Tbul debugger na-ahapụ gị ka ị gafere site na nkwupụta ma dozie ntụpọ.

Enweghị arụmụka, a laghachiri 1 ma ọ bụrụ na onye nbufu ahụ adịghị agba ọsọ, ma ọ bụghị 0 a laghachiri.

Site na arụmụka nke 1, a na-amalite debugger. Site na arụmụka nke 0, a na-akwụsị onye nbufu ahụ. Ọ bụrụ na esemokwu 1 na-aga n'ihu ọkọlọtọ -now, ọkọlọtọ ahụ amalite ozugbo. Ma ọ bụghị ya, a na-amalite na-arụ ọrụ na nkwupụta Tcl ọzọ.

Iwu mkpofu ahụ anaghị agbanwe ọnyà ọ bụla. Tụlee nke a iji malite atụ anya na-flag.

Iwu nke iwu ahụ na-ekpuchi usoro echekwara site na ọnụ . Ọ na-aga n'ihu na-agba ọsọ n'azụ. E nyere usoro ahụ usoro nke ya. A na-ebute I / O / I / O nhazi na / dev / null .

Akụkụ ndị a na-eji njigharị iji nọgide na-ede edemede ahụ na ndabere.

ma ọ bụrụ na [fork]! = 0} wepụ apụ. . .

Ihe na-esonụ na-agụ paswọọdụ ma na-agba ọsọ usoro ọ bụla na-achọ ka paswọọdụ oge ọ bụla ọ na-agba ọsọ. Ihe edemede ahụ na-enye paswọọdụ ka ị wee nwee ike ịtinye ya ozugbo.

Send_user -re "(. *) \ n" maka {} 1 {} {ma ọ bụrụ na {[fork]! = 0} {ụra 3600; nọgide na - wepụ spawn priv_prog anya Okwuntughe: zipu "$ expect_out (" send_user "password) 1, eriri) \ r ". . . Ụzọ ọpụpụ }

Otu uru iji iji kpochapụ ihe a na-atụgharị na shell (&) bụ na Olileanya nwere ike ịchekwa nọmba njedebe tupu ịkwụsị ma mesịa tinye ha na ptys ọhụrụ. Na &, Olileanya anaghị enwe ohere ịgụta ọnụọgụ nke njedebe ebe ọ bụ na oge ahụ ejirila oge ejiri kpochapu oge na-atụ anya ichere.

ọpụpụ [-opts] [ọnọdụ]

na-atụ anya ịpụ ma ọ bụ n'ụzọ ọzọ ịkwadebe ime otú ahụ.

Akara ọkọlọtọ na-eme ka arụmụka na-esote dị ka onye nchịkwa na-apụ apụ. Enweghị esemokwu, a na-alọghachi onye nchịkwa na-apụ apụ ugbu a.

Ntughari nke ugbua na - atụ anya ka ị kwadebe ịpụ ma kwụsị ịnweta nchịkwaghachi na sistemụ arụmọrụ. Onye na-eme ka onye ọrụ na-akọwapụta onye ọrụ na-agba ọsọ nakwa dị ka ndị na-atụ anya ya. Enweghị iwu ndị ọzọ a na-atụ anya ka a ga-egbu. Nke a bara uru ma ọ bụrụ na ị na-agba ọsọ Anya na nkwalite ndị ọzọ Tcl. Onye ntụgharị okwu ugbu a (na isi windo ma ọ bụrụ na ọnọdụ Tk) ka na-eme ka ndọtị ndị ọzọ Tcl nwere ike ihichapụ. Ọ bụrụ na a na-akpọ oku ọpụpụ na- atụ anya (ma nke a nwere ike ime), ndị ọrụ nchịkọta anaghị akpọghachi.

Mgbe ị na-apụ, a ga-emechi njikọ niile nke ememme. A ga-achọpụta mmechi dịka EOF site na iji usoro. ụzọ ọpụpụ anaghị eme ihe ọ bụla ọzọ karịa usoro nkịtị nke ọpụpụ (2). N'ihi nke a, ememme ndị na-adịghị elele EOF nwere ike ịnọgide na-agba ọsọ. (Ọdịiche dị iche iche dị mkpa iji chọpụta, dịka ọmụmaatụ, ihe ị ga - egosi na a ga - ezigara usoro a, ma ndị a bụ ihe ndabere nke usoro, nke edepụtara n'okpuru ntụgharị (3).) A ga - eketa usoro mmemme na - anọgide na - agba ọsọ.

ọnọdụ (ma ọ bụ 0 ma ọ bụrụ na ọ bụghị akọwapụtara ya) eweghachite dị ka ọpụpụ ọhụụ nke Na-atụ anya . a na-egbuchapụ kpamkpam ma ọ bụrụ na njedebe nke edemede ahụ ruru.

exp_continue [-continue_timer]
Iwu iwu exp_continue na- enye ohere na- atụ anya na ya ga-anọgide na-eme ya kama ịlọghachi dị ka ọ ga-adị. Site na ndabara exp_continue reset oge nkwụsị. The flag -continue_timer na- egbochi oge site na ịmalitegharịa. (Lee anya maka ozi ndị ọzọ.)

njirimara [-f faịlụ] exp_internal
na-eme ka iwu ndị ọzọ na-ezite ozi nchọpụta n'ime esetịpụ na stderr ma ọ bụrụ na uru abaghị zero. Ihe mmepụta a nwere nkwarụ ma ọ bụrụ na ọnụahịa ya bụ 0. Ihe nchọpụta diagnostics na-agụnye onye ọ bụla anatara, na mgbalị ọ bụla iji mee ka ihe mmepụta ahụ na-eme ugbu a megide usoro.

Ọ bụrụ na a na-enye faịlụ nhọrọ ahụ, a ga-edepụta mmepụta arụmọrụ nkịtị na mbibi na faịlụ ahụ (n'agbanyeghị uru ọnụ ahịa bara uru ). A na-emechi faịlụ ọhụụ nchọpụta nchọpụta ọ bụla.

Akara Ama-Ama na- eme ka exp_internal laghachi a kọwaa ihe arụmụka kachasị na-adịbeghị anya nyere.

exp_open [args] [-i spawn_id]
weghachite ihe nchoputa Tcl nke kwekoriri id. Enwere ike iji nchịkọta faịlụ ahụ dị ka ọ bụrụ na iwu Tcl kpughere ya. (E kwesịghị iji ya mee ihe.) A gaghị egbu egbu echere .

The -leaveen ọkọlọtọ na-ahapụ ohere imeghe maka ohere site na iwu iwu. A ghaghị ichere ichere na spa id.

exp_pid [-i spawn_id]
weghachite usoro id kwekọrọ na usoro a na-eme ugbu a. Ọ bụrụ na-eji ọkọlọtọ eme ihe, pid laghachiri na nke kwekọrọ id.

exp_send
bụ aha aha maka izipu .

exp_send_error
bụ aha aha maka send_error .

exp_send_log
bụ aha aha maka send_log .

exp_send_tty
bụ aha aha maka send_tty .

exp_send_user
bụ aha aha maka send_user .

exp_version [[-exit] mbipute]
bara uru iji kwenye na edemede ahụ dakọtara na mbipụta nke ugbu a na-atụ anya ya.

Enweghị arụmụka, a na-eweghachi nsụgharị nke Atụ anya ugbu a. Nke a nwere ike weghachite na edemede gị. Ọ bụrụ na ị maara n'ezie na ị naghị eji njirimara nke nsụgharị ndị na-adịbeghị anya, ị nwere ike ịkọwa ụdị mbụ.

Amaokwu ndị nwere nọmba atọ dị iche iche na-anọchi iche. Nke mbụ bụ ọnụ ọgụgụ dị mkpa. Ihe ederede edere maka nsụgharị nke Ịtụ anya na ọnụ ọgụgụ dị iche dị iche iche ga-abụrịrị na ọ gaghị arụ ọrụ. exp_version weghachite njehie ma ọ bụrụ na isi nọmba anaghị adaba.

Nke abụọ bụ obere ọnụ ọgụgụ. Ihe ederede edere maka mbipute nke nwere obere nọmba karịa mbipụta nke ugbu a nwere ike ịdabere na ihe ọhụrụ ma nwee ike ghara ịga. exp_version weghachite njehie ma ọ bụrụ na nọmba ọnụ ọgụgụ, ma akara nchịkọta edemede dị ukwuu karịa nke na- atụ anya na- agba ọsọ.

Nke atọ bụ ọnụọgụgụ nke na-enweghị òkè na njirịta ahụ. Otú ọ dị, ọ na-agbakwunye mgbe a na-agbanwe nsụgharị ngwanrọ anya n'ụzọ ọ bụla, dịka site na akwụkwọ ma ọ bụ njikarịcha. A na-emegharị ya na 0 n'elu ụdị ọhụụ ọhụrụ ọ bụla.

Na -abụ ọkọlọtọ, Na-atụ anya na ịpịpụta njehie ma ọpụpụ ma ọ bụrụ na mbipute ahụ adịkwaghị.

na-atụ anya [[-opts] pat1 body1] ... [-opts] patn [bodyn]
echere ruo mgbe otu n'ime usoro ahụ na-emetụta mmepụta nke usoro a na-emegharị, oge a kapịrị ọnụ agafeela, ma ọ bụ njedebe faịlụ. Ọ bụrụ na ozu ikpeazụ ahụ abaghị uru, enwere ike ịhapụ ya.

Ụkpụrụ sitere na nchịkọta kachasị anya a na- atụ anya ya tupu eji iwu eme ihe n'ụzọ zuru ezu tupu usoro ọ bụla ọzọ. Ụkpụrụ sitere na nchịkwa anya na-adịbeghị anya a na-eji ya eme ihe mgbe ọ bụla ọzọ.

Ọ bụrụ na arụmụka niile na- atụ anya na nkwupụta na-achọ ihe karịrị otu akara, niile arụmụka nwere ike "braced" n'ime otu iji zere ịkwụsị nke ọ bụla na a backslash. Na otu ikpe a, mgbanwe ndị Tcl na-emebu ga-eme n'agbanyeghị agbatị.

Ọ bụrụ na ụkpụrụ bụ isi okwu isiokwu ahụ, a na- emejiri akụkụ ahụ kwekọrọ na njedebe. Ọ bụrụ na ụkpụrụ bụ oge nkwụsịtụ oge , a na-emejiri ozu ahụ kwekọrọ na oge oge. Ọ bụrụ na enweghi ederede oge na-aga, a na-eme ihe null kpamkpam na oge oge. Oge nkwụsịtụ oge a bụ 10 sekọnd ma enwere ike ịtọ, dịka ọmụmaatụ ruo 30, site na iwu "setịpụrụ oge 30". Enwere ike igosi oge enweghi ngwụcha site na uru -1. Ọ bụrụ na ụkpụrụ bụ isi okwu na- enweghị isi , a na-eme ka ahụ kwekọrọ na ya ma ọ bụ oge nkwụsị ma ọ bụ njedebe.

Ọ bụrụ na usoro kwekọrọ na ya, a ga-egbu ahụ kwekọrọ. na-atụ anya ịlaghachi ahụ nke ahụ (ma ọ bụ eriri efu ma ọ bụrụ na ọ bụrụ na ọ dịghị ụkpụrụ ọ bụla). Ọ bụrụ na ọtụtụ usoro ihe atụ dakọtara, a na-eji onye na-apụta ụzọ iji họrọ ahụ.

Oge ọ bụla mmepụta ọhụrụ ga-abịa, a na-eji ya tụnyere ụkpụrụ ọ bụla n'usoro ka ha depụtara ya. Ya mere, ị nwere ike ịnwale maka enweghi ihe egwuregwu site na ịme ihe ikpeazụ ka ọ pụta ìhè, dị ka ngwa ngwa. N'ọnọdụ ebe ọ na-adịghị ngwa, ị ghaghị iji oge ọ bụla (dịka ịchọrọ ma ọ bụrụ na ị na-emekọ aka).

Ụkpụrụ dị iche iche na-akọwapụta n'ụzọ atọ. Site na ndabara, a na-akọwa usoro dịka iwu Tcl si eriri egwuregwu . (Ụdị dị otú ahụ na-eme ka C-shell na- emekarị okwu ndị a na-akpọkarị "ụwa" usoro). Enwere ike iji akara ọkọlọtọ -gl iji chekwaa usoro nke nwere ike ma ọ bụrụ na ọ ga- ekwekọ na flags si eme ya. A ga-echebe usoro ọ bụla nke na-amalite site na "-" n'ụzọ dị otú a. (Mkpịsị ụda niile na-amalite na - - "echekwara maka nhọrọ n'ọdịnihu.)

Dịka ọmụmaatụ, akụkụ ndị a na-achọ maka nbanye nke ọma. (Rịba ama na abort bụ ihe e chere na ọ bụ usoro akọwapụtara ebe ọzọ na edemede.)

na-atụ anya {n'ọrụ {na-etinye n'ọrụ \ n; exp_continue} dara adaba "paswọọdụ ezighi ezi" abort timeout abort connected}

Ihe dị mkpa na usoro nke anọ ebe o nwere oghere, nke ga - esi na ya wepụ ụkpụrụ ahụ site na ihe ahụ. Ụkpụrụ na otu ihe ahụ (dịka nke 3 na nke 4) chọrọ ịdekọ ọrụ ndị ọzọ. Nke a nwere ike izere site n'itinye ụdị ihe eji eme ihe (lee n'okpuru). Enwere ike ịchọta ihe ọmụma gbasara ịmepụta ụdị usoro ụwa na akwụkwọ Tcl.

Ụdị usoro eji eme ihe na-agbaso usoro nhazi nke Tcl's regexp (obere maka "okwu niile"). a na-esite na ọkọlọtọ gosipụtara usoro ihe atụ. Ihe atụ nke mbụ nwere ike ịmegharị ọzọ site na iji regexp dị ka:

na-atụ anya {n'ọrụ {na-etinye n'ọrụ \ n; exp_continue} -eme "okpu> paswọọdụ ezighi ezi" abort timeout abort connection}

Ụdị ụdị usoro abụọ ahụ bụ "unanchored". Nke a pụtara na ihe eji eme ihe anaghị adaba na eriri dum, ma enwere ike ịmalite ma kwusi egwuregwu ọ bụla n'ime eriri (ọ bụrụhaala na ihe ọ bụla kwekọrọ). Jiri ^ iji tụnyere mmalite nke eriri, na $ tụnyere njedebe. Rịba ama na ọ bụrụ na ịnweghị ichere maka njedebe nke eriri, nzaghachi gị nwere ike ịkwụsị n'etiti eriri ahụ dịka a na-akpọghachi ha site na usoro ahụ. Ka ọ na-arụpụta ihe ziri ezi, ihe mmepụta ahụ nwere ike ịka anya na ọ dịghị ekwe omume. Ya mere, a na-agba ume nke $ ma ọ bụrụ na ị nwere ike ịkọwa ihe ederede na njedebe nke eriri.

Rịba ama na n'ọtụtụ editọ, '$' na mmalite egwuregwu na njedebe nke usoro. Otú ọ dị, ebe ọ bụ na atụghị anya na-abụghị usoro akara, ndị a na-agụ akụkọ a jikọtara mmalite na njedebe nke data (ma ọ bụrụ na esemokwu) dị ugbu a na-atụ anya ntanye. (Ọzọkwa, lee ederede dị n'okpuru ebe a na "nchịkwa usoro.")

The -ex ọkọlọtọ na-eme ka ụkpụrụ ahụ kwekọọ na eriri "kpọmkwem". Enweghị nkọwa nke *, ^, wdg (ọ bụ ezie na mgbakọ Tcl gara aga ka a ga-edebe). Ebumnuche ziri ezi na-adịtụghị mgbe niile.

Ụda ọkọlọtọ-ọkọlọtọ na-eme ka mkpụrụedemede ukwu nke mmepụta iji tụnyere ha ma ọ bụrụ na ha bụ mkpụrụ edemede obere. A gaghị emetụta ụkpụrụ ahụ.

Mgbe ị na-agụpụta ihe, ihe karịrị 2000 octets nwere ike ime ka octets na mbụ "echefu". Nke a nwere ike gbanwere na ọrụ match_max . (Rịba ama na nnukwu ọnụahịa nwere ike ime ka ihe nkwụsị ahụ kwụsị.) Ọ bụrụ na onye nchịkọta bụ full_buffer , a ga-eme ka ahụ kwekọrọ na ya ma ọ bụrụ na octets comma na-anata ma ọ dịghị usoro ọzọ dabara. Ma edere ma ọ bụ na- ejighị ederede zuru_buffer , a na-edepụta ihe odide echefu echere ka ichere (chekwaa).

Ọ bụrụ na onye nchịkọta bụ isiokwu efu , a na-ekwekwa nulls (site na remove_nulls command), a na-egbu otu ahụ ma ọ bụrụ na otu ASCII 0 dị na ya. Ọ gaghị ekwe omume ijikọta 0 octets site na ụwa ma ọ bụ regexp ihe nakawa etu esi.

Mgbe ị na-ejikọta ụkpụrụ (ma ọ bụ eof ma ọ bụ full_buffer), a na-echekwa ihe ọ bụla dabara na ihe ọhụụ a na-emeghị tupu na-atụ anya_out (echekwa) . Ruo 9 ngwunye na-agbanye na ntanye na-echekwa na ọdịdị atụ anya (1, eriri) site na atụ anya (9, eriri) . Ọ bụrụ na eji akara ọkọlọtọ eji ihe eji eme ihe, a ga- echekwa ụdị indices na mmalite (n'ụdị dị mma maka lrange ) nke ụdọ 10 ahụ na ọdịiche dị iche iche (X, mmalite) na expect_out (X, njedebe) ebe X bụ nchịkwa, kwekọrọ n'ọnọdụ dị na ntanye ahụ. 0 na-ezo aka na ụdọ nke jikọtara usoro ahụ dum ma na-eme maka usoro ihe atụ ụwa nakwa dị ka ihe atụ ndị ọzọ. Dịka ọmụmaatụ, ọ bụrụ na usoro emepụtapụta "abcdefgh \ n", ihe si na:

na-atụ anya "cd"

dị ka ma ọ bụrụ na okwu ndị a mechara:

setịpụ anya_out (0, eriri) cd set expect_out (zoo) abcd

na "efgh \ n" ka fọdụrụ na akwapụta ihe. Ọ bụrụ na usoro mepụtara mmepụta "abbbcabkkkka \ n", ihe si na:

atụ anya -indices - b "b (b *). * (k +)"

dị ka ma ọ bụrụ na okwu ndị a mechara:

ịtọ expect_out (0, mmalite) 1 set expect_out (0, end) 10 set expect_out (0, string) bbbcabkkkk set expect_out (1, start) 2 set expect_out (1, end) 3 set expect_out (1, string) bb set expect_out (2, mmalite) 10 setịpụrụ expect_out (2, njedebe) 10 set expect_out (2, string) k set expect_out (buffer) abbbcabkkkk

na "a \ n" ka fọdụrụ na akwapụta ihe. Usoro "*" (na -re ". *") Ga-ewepụ ihe nchekwa ahụ na-emepụta n'enweghị agụ ihe ọ bụla sitere na usoro ahụ.

Dịka okwesiri, a na-atụfu ihe mwepụ na-arụkọ ọrụ site na nkwụsị anya nke dị n'ime. Enwere ike igbochi nke a site na ịkọwa ụkpụrụ na akara ọkọlọtọ. Ọkọlọtọ a bara uru karịsịa na ịnwale (a pụkwara ibelata ya na "- ọ bụghị" maka ihe dị mma mgbe ị na-anwale).

A na-echekwa ihe eji eme ihe na mmepụta ya (ma ọ bụ eof ma ọ bụ full_buffer) na expect_out (spawn_id) .

Ụdị oge -oge na-eme ka iwu dị ugbu a na-atụ anya iji uru dị ugbu a dị ka oge nkwụsị kama iji uru nke oge oge.

Site na ndabara, usoro na-adaba na mmepụta site na usoro ugbu a, Otú ọ dị, ọkọlọtọ-ọkọlọtọ na-ekwuputa mmepụta site na aha spawn_id aha ya bụ ihe kwekọrọ na usoro ọ bụla (rue na-esote -i ). Ihe ndepụta spawn_id kwesịrị ịbụ ndepụta nke iche spawn_ids ma ọ bụ mgbanwe nke na-ezo aka na ndepụta dị otú ahụ nke spawn_ids.

Dịka ọmụmaatụ, ihe atụ na-esonụ na-echere maka "ejikọrọ" site na usoro ugbu a, ma ọ bụ "ọrụ", "okpu" ma ọ bụ "paswọọdụ ezighi ezi" site na spawn_id aha $ proc2.

na-atụ anya {-i $ proc2 ọrụ {na-etinye n'ọrụ \ n; exp_continue} -eme "okpu> paswọọdụ ezighi ezi" abort timeout abort connection}

Enwere ike iji uru nke agbanwe agbanwe ụwa ọ bụla_spawn_id iji kwadoro ụdị ihe ọ bụla na spawn_ids ndị a na-akpọ aha ndị ọzọ -i na iwu dị ugbu a. Na spawn_id site na ọkọlọtọ-ọkọlọtọ na-enweghị ihe jikọrọ ya (yabụ, na-esote ya ọzọ -i ) ka emere ya ka ọ bụrụ ihe ọ bụla ọzọ na iwu ahụ nwere ike ịdaba na any_spawn_id.

Ọkọlọtọ ahụ nwere ike ịkọwa ụda gburugburu ụwa ebe ọnụọgụ na-agụ maka listi spa id id. A na-agụgharị agbanwe ahụ mgbe ọ bụla ọ gbanwere. Nke a na-enye ụzọ isi gbanwee I / O ebe ọ bụ na iwu ahụ na-egbu. A na - akpọ ụdị ids a na - akpọ "indirect" spawn ids.

Omume dịka nkwụsịtụ ma nọgide na- eme ka nchịkwa ịchịkwa (ntụgharị, maka , proc ) na-akpa àgwà n'ụzọ ọ bụla. Iwu iwu exp_continue na- enye ohere na- atụ anya na ya ga-anọgide na-eme ya kama ịlọghachi dị ka ọ ga-adị.

Nke a bara uru maka ịzere loops doro anya ma ọ bụ ikwu okwu na-atụ anya ugboro ugboro. Ihe atụ na-esonụ bụ akụkụ nke obere mpempe akwụkwọ iji rụọ ọrụ rlogin. The exp_continue na- ezere inwe ederede atụmanya abụọ (iji lee anya ozugbo) ma ọ bụrụ na rlogin kpaliri maka paswọọdụ.

atụ anya {Paswọdu: {stty -echo send_user 'password (for $ user) on $ host: "expect_user -re" (. *) \ n "send_user" \ n "send" $ expect_out (1, string) \ r "stty eziputa exp_continue} ezighi ezi 'send_user' paswọọdụ ezighi ezi ma ọ bụ akaụntụ \ n 'ụzọ ọpụpụ} timeout {send_user' njikọ na $ host timed out \ n "ụzọ \ {send_user \ 'njikọ iji kwado okpu: $ expect_out (buffer)" outit} - re $ ozugbo}

Dịka ọmụmaatụ, obere akwukwo ndị a nwere ike inyere onye ọrụ aka ịhazi mmekọrịta nke ejirila rụọ ọrụ. N'okwu a, a na-etinye ọnụ ahụ n'ọnọdụ ire. Ọ bụrụ na onye ọrụ ahụ na-agbanye "+", a gbanyere agbanwe agbanwe. Ọ bụrụ na -ekwusi "p", ọtụtụ nzaghachi na-ezigara na usoro ahụ, ikekwe iji mee ka ọ dị ọcha n'ụzọ ụfọdụ, na "i" na-eme ka onye ọrụ na-emekọrịta ihe, na-ezu ohi n'ụzọ zuru ezu site na edemede ahụ. Na nke ọ bụla, exp_continue na- enye ohere ugbu a na- atụ anya ịnọgide na-agbaso usoro kwekọrọ mgbe ọ rụchara ihe ahụ dị ugbu a.

ajuju azu ojoo na -eme ka a ga-eme ya '-i $ user_spawn_id "p" {zipu "\ r \ r \ r"; exp_continue} "+" {incr foo; exp_continue} "i" {na-emekọrịta; exp_continue} "nkwụsị" ọpụpụ}

Site na ndabara, exp_continue reset oge nkwụsị. Oge abughi imegharia ya , ma oburu na a na-akpọ exp_continue na ọkọlọtọ -continue_timer .

na-atụ anya [expect_args]
na-arụ ọrụ na- atụ anya na ọ ga-atụ anya tupu ọ bụrụ na ọ bụrụ na ihe ebumnuche na- atụ anya na atụ anya na nke ahụ nwere ike ịkwado, a na-eji usoro a na- atụ anya . Hụ atụmanya anya maka iwu maka ozi ndị ọzọ.

atụ anya_background [expect_args]
na-ewe otu arụmụka dị ka atụ anya , ma ọ ga-alaghachi ozugbo. A na-anwale ụdị ihe ọ bụla mgbe ọ bụla ngwa ngwa abanye. Oge oge na ndabara bụ ihe na-abaghị uru na- atụ anya na a ga-atụfu ya. Ma ọ bụghị ya, iwu a na- atụ anya na-atụ anya naga-atụ anya na ị ga-atụ anya ya ma ọ bụ na- atụ anya ya n'ọdịnihu .

Mgbe a na- atụle ihe omume a na-atụ anya ya, a na-egbochi usoro nhazi maka otu spa id. A naghị emeghe nhazi oge mgbe arụmọrụ ahụ mechara. Ọ bụ ezie na a na-egbochi usoro nhazi ihuenyo, ọ ga-ekwe omume ime (site na ihu) na- atụ anya na otu spawn id.

Enweghị ike ịme ihe na- atụ anya mgbe ị na- atụ anya ka a ghara ịchọta ya . a na-ehichapụ anya ntụgharị maka otu nnwale spawn site na-ekwuputa ihe ọhụụ na-atụ anya ya na otu ntụgharị id. Na-ekwuputa expect_background n'enweghị ihe ọ bụla na-ewepu idụzụ spawn nyere site na ike iji tụnyere ihe nakawa na ndabere.

na-atụ anya na ọ bụ [expect_args]
na-ewe otu arụmụka dị ka atụ anya , ma ọ ga-alaghachi ozugbo. Ụkpụrụ-ihe abụọ dị iche iche na-atụ anya na-adịbeghị anya na- atụ anya na tupu a na-eme otu ihe ahụ na-agbakwunye kpamkpam na iwu ọ bụla na- atụ anya . Ọ bụrụ na usoro kwekọrọ na ya, a na-emeso ya dịka ọ bụrụ na e kwuru ya kpọmkwem na iwu ahụ na- atụ anya ya, a na-emejikwa akụkụ ahụ metụtara na iwu nke iwu ahụ. Ọ bụrụ na ihe atụ si na- atụ anya ma ọ bụ na- atụ anya na ị nwere ike ịkwado, a na-eji ihe atụ atụ anya .

Ọ bụrụ na akọwaghị ụkpụrụ ọ bụla, a gaghị elele spawn id maka ihe ọ bụla.

Ọ gwụla ma ọkọlọtọ-a ọkọlọtọ, na- atụ anya na ọ ga- abụrịrị na usoro ihe a na-adabere na nkwupụta e gosipụtara n'oge a na-atụ anya na a ga- emezu iwu ahụ (ọ bụghị mgbe e mejupụtara ụkpụrụ ya).

Akara Ama-Ama na- atụ anya_ma tupu ịlaghachi nkọwa ndị dị ugbu a banyere ihe nhazi ndị ọ ga-adaba. Site na ndabara, ọ na-akọrọ banyere spawn id ugbu a. Enwere ike inye nkọwa nke ohere spawn idọtị maka ozi na spa id id. Ọmụmaatụ

eche_before -info -i $ proc

Enwere ike inye nkọwa kachasị nke id specification. Ọkọlọtọ nke ọkọlọtọ na-egbochi ihe ntụgharị spawn kpọmkwem nke na-abịa site na nkọwa doro anya.

Kama nke nkọwa ezipụ na spa, flag "-all" ga-eme "-info" ịkọ akụkọ niile spawn ids.

A na-emegharị ihe ngosi nke akara ngosi -info ka arụmụka ahụ na-atụ anya ya.

na-atụ anya_tty [expect_args]
dị ka atụmanya mana ọ na-agụ ihe odide si / dev / tty (ntụgharị keystrokes si onye ọrụ). Site na ndabara, a na-eme ka a na-agụ ihe na ya. Ya mere, usoro a ga-ejedebe na nloghachi ka icho anya ihu ha. Nke a nwere ike gbanwere site na stty (lee iwu stty n'okpuru).

na-atụ anya_user [expect_args]
dị ka na- atụ anya mana ọ na-agụ ihe odide si stdin (ntụgharị keystrokes si onye ọrụ). Site na ndabara, a na-eme ka a na-agụ ihe na ya. Ya mere, usoro a ga-ejedebe na nloghachi ka icho anya ihu ha. Nke a nwere ike gbanwere site na stty (lee iwu stty n'okpuru).

ndụdụ
mepụta usoro ohuru. Usoro ohuru bu uzo zuru oke nke usoro ihe ndi di ugbu a . Na ihe ịga nke ọma, ndụdụ na- alaghachi 0 na usoro nwatakịrị (nwata) ma weghachite ID nke usoro nwatakịrị ahụ na usoro nne na nna. Na ọdịda (mgbe niile n'ihi enweghị ego, dịka, nkwụsị ohere, ebe nchekwa), ndụdụ na- alaghachi -1 na usoro nne na nna, ọ dịghịkwa nwa e kere.

Nzọpụ ụzọ ntụgharị site na iwu npụpụ , dị ka usoro mbụ ahụ . A na-enyefe ikikere usoro iji dee faịlụ faịlụ. Ọ bụrụ na ị gbanyụọ igbochi ma ọ bụ ịbanye na ọtụtụ n'ime usoro ahụ, nsonaazụ nwere ike ịme mgbagwoju anya.

Ụfọdụ ndị na-agụ akwụkwọ na ndị na-ede akwụkwọ nwere ike ịme ihe ụfọdụ, ọbụna oge ụfọdụ. Ya mere, ọ bụ ihe nchekwa kachasị nchebe tupu ịmepụta usoro.

na-emekọ ihe [string1 body1] ... [stringn [bodyn]]
na-enye njikwa nke usoro ugbu a gaa n'aka onye ọrụ ahụ, nke mere na a na-ezipụ keystrokes na usoro ugbu a , a na-eweghachikwa ihe nkwado na stderr nke usoro ugbu a .

A pụrụ ịkọwa ụzọ abụọ ahụ dị ka arụmụka, bụ nke a na-egbu ahụ mgbe ejiri eriri kwekọrọ. (Site na ndabara, anaghi eziga eriri na usoro nke ugbu a .) A na-eche iwu onye ntụgharị okwu , ma ọ bụrụ na aru ikpeazụ ahụ adịghị.

Ọ bụrụ na arụmụka niile nkwupụta okwu chọrọ ihe karịrị otu akara, niile arụmụka nwere ike "braced" n'ime otu iji zere ịkwụsị akara ọ bụla na-atụgharị. Na otu ikpe a, mgbanwe ndị Tcl na-emebu ga-eme n'agbanyeghị agbatị.

Dịka ọmụmaatụ, iwu na-esonụ na-ejikọta ọnụọgụ abụọ-ahụ na-esonụ: Mgbe 'Z na-arụ ọrụ, Echere na-atụ anya . (The -reset flag restores the modes modes.) Mgbe 'A na-arụ ọrụ, onye ọrụ ahụ na-ahụ "ị pịa akara-A" na usoro a zitere' A. Mgbe enwere ego, onye ọrụ ahụ na-ahụ ụbọchị ahụ. Mgbe 'C na-arụ ọrụ, Na-atụ anya ịpụ. Ọ bụrụ na ịbanye "foo", onye ọrụ ahụ hụrụ "mmanya". Mgbe a na-arụ ọrụ, onye ntụgharị uche anya na -emekọrịta mmekọrịta.

mee ka CTRLZ \ 032 na-emekọrịta {-reset $ CTRLZ {exec kill -STOP [pid]} \ 001 {send_user 'ka ịghaara akara-A \ "; zipu "\ 001"} $$ send_user "Ụbọchị bụ [oge elekere [elekere sekọnd]]."} \ 003 ọpụpụ na-eziga {send_user 'mmanya'}}

N'okwu abụọ nke eriri ahụ, eriri ahụ jikọtara na nhazi ha edepụtara dị ka arụmụka. A naghị ezipụ ụdọ ndị na-adaba na ya ugbu a na atụmanya nke ndị fọdụrụnụ. Ọ bụrụ na etinyere ederede ka enweghi ike ịbụ egwuregwu, naanị akụkụ nke eriri ahụ ga-eziga na usoro nke na-enweghị ike ịmalite egwuregwu ọzọ. Ya mere, ụdọ ndị na-abụ ihe egwuregwu na-adabere na ya nwere ike dakọtara, ma ọ bụrụ na ụdọ mbụ nke na-agbalị ịme egwuregwu ga-ada ada.

Site na ndabara, eriri ngwugwu bụ kpọmkwem n'enweghị kaadị ohia . (N'ụzọ dị iche, iwu ahụ na- atụ anya na -eji usoro ihe atụ zuru ụwa ọnụ mee ihe na ndabara.) A pụrụ iji ụdị ọkọlọtọ -ex iji kpuchie ihe omume ndị nwere ike iji ya tụnyere ụda mmekọrịta site na ime otú ahụ. A ga-echebe usoro ọ bụla nke na-amalite site na "-" n'ụzọ dị otú a. (Mkpịsị ụda niile na-amalite na - - "echekwara maka nhọrọ n'ọdịnihu.)

The -re ọkọlọtọ agha eriri ka a ga-atụgharị dị ka a regexp-ụdị ụdị. N'okwu a, a na-echekwa ihe ndị yiri ya na agbanwe agbanwe na- emekọrịta ya n'otu aka ahụ na ụzọ anya na- echekwa mmepụta ya na atụ anya_out . A na-akwado nkwado ọkọlọtọ na-akwado.

Ụdị ihe omume ahụ na- ekpughe ihe emere na njedebe. Ụdị nkewa dị iche iche nwekwara ike ịgbaso akara ngosi nke ọhụụ nke ọ na-adaba ma ọ bụrụ na achọpụtara nhichapụ mgbe ị na-edepụta mmepụta. Omume nhichapụ bụ "nloghachi", nke mere na mmekọrịta na -alaghachi na EOF ọ bụla.

Oge nhazi oge a na- ewepụta oge (na sekọnd) na omume nke a na-egbu mgbe ọ gụchara ihe ọ bụla maka oge nyere. Ụdị oge a na-emetụta usoro kachasị akọwapụta. Enweghi oge ọ bụla. Ihe pụrụ iche "agbanwe oge" (nke iwu na- atụ anya ) enweghị mmetụta na oge a.

Dịka ọmụmaatụ, enwere ike iji nkwupụta ndị na-esonụ na ndị ọrụ nlekota onwe ha bụ ndị na-ejighị ihe ọ bụla dochie anya otu awa kama ha ka na-enweta ọtụtụ usoro ozi:

na-emekọrịta -apụ $ user_spawn_id timeout 3600 laghachi -output \ $ spawn_id

Ọ bụrụ na ụkpụrụ ahụ bụ isiokwu efu , a na-ahapụkwa null (site na iwepụ remove_nulls ), a na-egbu ahụ kwekọrọ ma ọ bụrụ na otu ASCII 0 dị na ya. Ọ gaghị ekwe omume ijikọta 0 octets site na ụwa ma ọ bụ regexp ihe nakawa etu esi.

Ịmepụta ụkpụrụ na ọkọlọtọ -awrite na- eme ka agbanwe interact_out (spawn_id) ka a debe ya na spawn_id nke dabara na ụdị (ma ọ bụ ntụgharị).

Omume dịka nkwụsịtụ ma nọgide na- eme ka nchịkwa ịchịkwa (ntụgharị, maka , proc ) na-akpa àgwà n'ụzọ ọ bụla. Otú ọ dị nlọghachi na - eme ka ịghachite laghachi na onye na - akpọ ya, mgbe inter_return na - eme ka ịghachite n 'oku ya. Dịka ọmụmaatụ, ọ bụrụ na "ikw foo" a na-akpọ na- emekọ ihe nke mechara mezue ọrụ ahụ , ị ga-alọghachi. (Nke a pụtara na ọ bụrụ na mmekọrịta na - akọwa ntụgharị ntụgharị ọnụ na mmekọrịta ga-eme ka mmekọrịta ahụ gaa n'ihu, mgbe inter_return ga-eme ka mmekọrịta ahụ laghachi na onye na-akpọ ya.)

Mgbe ị na- emekọ ihe , a na-eji ụdị ọkụ na-eme ihe iji mee ka ihe odide niile gafere n'usoro ugbu a . Ọ bụrụ na usoro ugbu a adịghị enweta akara nchịkwa ọrụ, ọ ga-akwụsị ma ọ bụrụ na ezipụ akara nkwụsị (site na ndabara ^ Z). Iji Malitegharịa ekwentị ya, zipu ihe mgbaàmà na-aga n'ihu (dịka site na "igbu -CONT"). Ọ bụrụ n'ezie na ịchọrọ izipu SIGSTOP ka ọ bụrụ usoro a (site na ZZ), tụlee ịmalite csh mbụ wee malite usoro ihe omume gị. N'aka nke ọzọ, ọ bụrụ na ịchọrọ ị zipụ SIGSTOP ka ichere onwe ya, buru ụzọ kpọọ onye ntụgharị okwu (ikekwe site n'iji ụzọ mgbapụ), wee pịa ^ Z.

A pụrụ iji ụzọ abụọ akpụkpọ ụkwụ mee ihe dị ka mkpụmkpụ maka ịzere ịbanye onye ntụgharị okwu ma mebie iwu na mmekọrịta. A na-eji usoro njedebe gara aga mgbe a na-egbu ahụ nke eriri ahụ.

Maka ọsọ ọsọ, omume na-arụ ọrụ na-adabaghị adaba site na ndabara. A na- eme ka ọkọlọtọ -reset maliteghachi na njedebe na ọnọdụ ọ na-eme tupu ya emekọrịta (mgbe niile, usoro a kụrụ ya ọkụ). Rịba ama na ndị odide a na-abanye mgbe ọnọdụ a na-agbanwe nwere ike ịla n'iyi (njirimara na-adịghị mma nke ọkwọ ụgbọ ala na ụfọdụ usoro). Nanị ihe mere ị ga - eji mee ihe bụ na ọ bụrụ na ọrụ gị dabere na ịgba ọsọ na usoro a kụrụ.

Akara -echo na- eziga ihe odide ndị kwekọrọ na usoro a azụ na usoro nke mepụtara ha ka agwa onye ọ bụla. Nke a nwere ike ịba uru ma ọ bụrụ na onye ọrụ ahụ chọrọ ịhụ nzaghachi site na ụdị usoro a.

Ọ bụrụ na a na-ekwughachi ụkpụrụ ma emesịa ada adaghị, a na-eziga ndị odide ahụ na usoro a gbanwere. O b ur u na usoro a na -emeghar i emee ka ha laghachi, onye na-eme ihe ga-ah u ihe odide ah u ugboro ab uo. -nke nwere ike ịbụ naanị na ọnọdụ ebe onye ọrụ nwere ike ghara imezue ụkpụrụ ahụ. Dịka ọmụmaatụ, ihe odide na-esite na rftp, ederede recursive-ftp, ebe a na-akpali onye ọrụ ịbanye ~ g, ~ p, ma ọ bụ ~ l, iji nweta, tinye, ma ọ bụ depụta ndekọ ugbu a na recursively. Ndị a dị nnọọ anya site na ntụziaka ndị dị mkpa, na onye ọrụ ahụ nwere ike ịpịnye ihe ọ bụla ọzọ, ma ọ bụrụ na o zighi ezi, na nke ahụ, ha ga-eleghara ihe ọ bụla anya.

na-emekọrịta {-echo ~ g {incurdirectory 1} -echo ~ l {getcurdirectory 0} -echo ~ p {putcurdirectory}}

The flag- flag bug na- eziga ihe odide nke kwekọrọ na ihe na-esonụ ụkpụrụ na mmepụta usoro dị ka ihe odide na-agụ.

Nke a bara uru mgbe ịchọrọ ikwe ka usoro ihe omume ahụ laghachi azụ. Dịka ọmụmaatụ, enwere ike iji ihe ndị na-esonụ nyochaa ebe mmadụ na-akpọ (ụdị modem Hayes). A na-ahụ "atd" oge ọbụla na ederede na-edekọta akara ndị ọzọ.

proc lognumber {} {interact -nobuffer -re '(. *) \ r "nkwụghachite na-ewepụta $ log" [clock clock [clock seconds]]: $ interact_out (1, string) "} interact -nobuffer" atd "lognumber

Mgbe ị na- emekọ ihe , a na-eleghara log_user anya. Karịsịa, mmekọrịta ga-eme ka mmepụta ya ga-abanye (zigara na mmepụta iwu) ebe ọ bụ na e chere na onye ọrụ ahụ achọghị ka ọ na-akpakọrịta.

The -o ọkọlọtọ na-eme ka otu ọ bụla isi-ahụ na-esonụ na-emetụta na mmepụta nke usoro ugbu a . Nke a nwere ike ịba uru, dịka ọmụmaatụ, mgbe ị na-emeso ụsụụ ndị agha na-eziga ihe odighi achọrọ na oge nzukọ telnet.

Site na ndabara, mmekọrịta na- atụ anya onye ọrụ ahụ na-ede stdin ma na-agụ akwụkwọ akụkọ nke usoro ihe atụ . The -u ọkọlọtọ (maka "njirimara") na-eme ka ịmekọrịta nyocha maka onye ọrụ dị ka usoro aha ya na arụmụka ya (nke ga-abụ id idozi).

Nke a na - enye usoro abụọ na - enweghị njikọ iji jikọta ọnụ na - ejighị ihe dị iche. Iji nyere aka n'iwepu, Nchọpụta ihe nlele na-aga mgbe niile (ma ọ bụ ihe na-eme maka ịkọ ihe ndekọ na nbibi). Maka otu ihe ahụ, onye ntụgharị okwu ahụ ga - agụpụta na stdin.

Dịka ọmụmaatụ, ibebi ndị a na-emepụta usoro nbanye. Mgbe ahụ, ọ na-adaba onye ọrụ ahụ (egosighi ya), ma n'ikpeazụ jikọta ha abụọ. N'ezie, enwere ike itinye usoro ọ bụla maka nbanye. Dị ka ihe atụ, shei ga-ekwe ka onye ọrụ ahụ rụọ ọrụ n'ebughị ịnye akaụntụ na paswọọdụ.

spawn login set login $ spawn_id spawn tip modem # pịa azụ si ọrụ # jikọọ onye ọrụ iji nbanye mmekọrịta -u $ login

Iji zipu mmepụta gaa na ọtụtụ usoro, depụta akara ndepụta nke spawn ọ bụla site na bọtịnụ -pụta . Ntinye aka maka otu ìgwè idapụta spawn ids nwere ike kpebisie ike site na ndepụta ntinye nke spawn site na akara ngosi . (Ma -nwepụ na nbuputa nwere ike ịchọta ndepụta na ụdị ahụ dị ka ọkọlọtọ na iwu a na- atụ anya , ma ọ bụrụ na ọ bụla_spawn_id adịghị mkpa na mmekọrịta .) Nkọwa niile na ụdọ (ma ọ bụ ụkpụrụ) na-etinye aka na ntinye a ruo mgbe ọzọ - akara ọkọlọtọ na-egosi. Ọ bụrụ na ọpụpụ apụtaghị, -apụpụta pụtara "-apụ $ user_spawn_id -output". (N'otu aka ahụ, ya na ụkpụrụ ndị na-enweghị ihe ọhụụ .) Ọ bụrụ na-akọwapụta ya kpọmkwem, ọ na-agbagha $ user_spawn_id. Ọ bụrụ na akọwaputara nke abụọ, ọ na-agbagha $ spawn_id. A pụrụ ịkọwa ọkọlọtọ ntinye ederede .

Usoro ntinye uche nke abụọ ahụ na-emeghị ka ha nwee ntinye ha dị ka $ spawn_id na $ user_spawn_id (na azu). Ọ bụrụ na ọkọlọtọ ntinye na-egosi na ọkọlọtọ ọpụpụ , a na-atụfu ihe odide sitere na usoro ahụ.

The -i ọkọlọtọ na-akọwa onye na-anọchite anya spawn_id ugbu a mgbe a na-ejighị ọkọlọtọ ọzọ ma ọ bụ nchọta . A-ọkọlọtọ na-egosi a-ọkọlọtọ.

O kwere omume ịgbanwe usoro ndị a na-ejikọta site na iji ids na-emepụta ihe. (A na-akọwapụta iddesị spawn ids na ngalaba na iwu ahụ na-atụ anya.) E nwere ike ịkọwa ids nwere ike ịkọwa ya na -i, -u, -putput, ma ọ bụ na-apụta.

onye ntụgharị okwu [args]
na-eme ka onye ọrụ ahụ nwee mkparịta ụka mmekọrịta maka Atụ anya na Tcl. A na-ebipụta nsonaazụ nke iwu ọ bụla.

Omume dịka nkwụsịtụ ma nọgide na- eme ka nchịkwa ịchịkwa (ntụgharị, maka , proc ) na-akpa àgwà n'ụzọ ọ bụla. Otú ọ dị nzaghachi na- eme ka onye ntụgharị okwu laghachi na onye na-akpọ ya, mgbe inter_return mere ka onye ntụgharị okwu mee ka nlọghachi na oku ya. Dịka ọmụmaatụ, ọ bụrụ na "pro foo" a na-akpọ onye ntụgharị okwu nke meziri ihe omume ahụ, proc foo ga-alaghachi. Iwu ọ bụla na-eme ka onye ntụgharị okwu nọgide na-akpali iwu maka iwu ọhụrụ.

Site na ndabara, ngwa ahụ nwere ọnụọgụ abụọ. Mbido mbụ ahụ na-akọwa omimi nke nchịkọta nyocha (ya bụ, ugboro ole ka a kpọrọ Tcl_Eval). Nọmba nke abụọ bụ nchọpụta akụkọ Tcl. Enwere ike ịtọ ntọala site na ịkọwa usoro a na-akpọ "prompt1" nke njirimara nlọghachi na-abụ oge na-esote. Ọ bụrụ na nkwupụta nwere ọnụego edemede, parens, braces, ma ọ bụ brackets, nke abụọ (site na ndabara "+>") na-enye iwu ọhụrụ. Enwere ike ịhazi usoro nke abụọ site na ịkọwa usoro a kpọrọ "prompt2".

N'oge onye ntụgharị okwu , a na-eji usoro a na-esi nri, ọbụna ma ọ bụrụ na onye na-akpọ ya na-eji ire ọkụ.

Ọ bụrụ na a mechibidoro stdin, onye ntụgharị okwu ga-alọghachi ọ gwụla ma - a na- eji ọkọlọtọ mee ihe, ebe nke a na-akpọ arụmụka na-esonụ.

log_file [args] [[-a] faịlụ]
Ọ bụrụ na e nyere aha njirimara, log_file ga-edekọ transcript nke nnọkọ (malite na mgbe ahụ) na faịlụ ahụ. log_file ga-akwụsị ndekọ ma ọ bụrụ na enweghị arụmụka. A na-emechi faịlụ ndekọ ọ bụla.

Kama ntinye aha, enwere ike ịnye njirimara faịlụ Tcl site na iji flags -open ma ọ bụ -leaveopen . Nke a yiri nke iwu ahụ. (Lee spawn maka ozi ndị ọzọ.)

The -a ọkọlọtọ mmepụta na-abanye na- emetụ site log_user iwu.

Site na ndabara, iwu log_file na-emetuta faịlụ ochie kama ịkọwa ha, maka mma nke inwe ike ịgbanwuo nbanye na ugboro ugboro n'otu nnọkọ. Iji gbanwee faịlụ, jiri ụda -noappend ọkọlọtọ.

Akara Ama-Ama na- eme log_file iji weghachite nkọwa nke arụmụka ndị na-abụghị ihe na-adịbeghị anya nyere.

log_user -info | 0 | 1
Site na ndabara, izipu / na-atụ anya nkwurịta okwu abanye na stdout (na logfile ma ọ bụrụ na emeghe). Akwụsịla osisi ahụ na njedebe site na iwu "log_user 0" na reenabled site na "log_user 1". Ịbanye na logfile adịghị agbanwe.

Akara Ama-Ama na- eme log_user iji weghachite nkọwa nke arụmụka ndị na-adịbeghị anya na-abụghị nke nyere.

match_max [-d] [-i spawn_id] [size]
akọwa nha nke ntanye ahụ (na octets) eji n'ime ya site na- atụ anya . Site na enweghị arụmụka dị oke, a na-alaghachi nha ugbu a.

Na -d ọkọlọtọ, edozila ndabara. (Ntọala mbụ bụ 2000.) Site na ọkọlọtọ-ọkọlọtọ, a debere aha maka aha spawn aha, ma ọ bụghị ya, ọ bụ maka usoro a dị ugbu a .

na - [- # spawn_id] [- # spawn_id] [...] program [args]
eme " args usoro " n'ọnọdụ nke atụmatụ a na- achọ ugbu a, nke ga-akwụsị. Otu arụmụka arụmụka na-enweghị atụ na-eme ka otu akwa dị n'ihu aha iwu ahụ dịka a ga-asị na ọ bụ ọbịbịa nbanye. A na-emechi spawn_ids niile ma e wezụga ndị a kpọrọ aha. A na-edepụta ndị a na njirimara faịlụ aha.

A na-edepụta Spawn_ids ka ha wepụta ihe njirimara maka usoro ihe omume ahụ iji keta. Dịka ọmụmaatụ, akara na-esonụ na-agbazi akụ na-enye ya ohere ịchịkwa usoro ugbu a - sịnụ, ọkachamara chess.

nnyefe -0 $ spawn_id -1 $ spawn_id -2 $ spawn_id chess

Nke a dị irè karịa "na-emekọrịta -u", Otú ọ dị, ọ na-achụrụ ikike ime mmekọrịta mmemme ebe ọ bụ na usoro ihe a na- atụ anya agaghịzi achịkwa.

Rịba ama na ọ dịghị onye njikwa ejidere. Ya mere, ọ bụrụ na ị kwụpụ ma ọ bụ ndenye ntinye zuru oke, mmemme ndị na-achịkwa ọrụ (shells, login, etc.) agaghị arụ ọrụ nke ọma.

parity [-d] [-i spawn_id] [uru]
na-akọwa ma ekwesịrị ịnọgide na-ejikọta ma ọ bụ wepụ ya site na mmepụta nke usoro mmegharị. Ọ bụrụ na ọnụọgụgụ bụ efu, a na-ewepụ otu ụzọ, ma ọ bụghị ya. Enweghị arụmụka bara uru , akwụghachila uru ugbu a.

Na -d ọkọlọtọ, a ghaziri ịhazi njedebe mmekọrịta. (Ntọala mbụ bụ 1, ntụgharị, enweghị otu.) Site na ọkọlọtọ -a ọkọlọtọ, a na-ahazi uru nhata maka aha spawn aha, ma ọ bụghị na ọ bụ maka usoro nke ugbu a .

wepụ_nulls [-d] [-i spawn_id] [uru]
akọwa ma agbanyere ma ọ bụ wepụ ihe null site na mmepụta nke usoro a na-emegharị tupu usoro ihe atụ ma ọ bụ ịchekwa na atụmanya expect_out ma ọ bụ interact_out . Ọ bụrụ na ọnụọgụgụ bụ 1, a na-ewepụ null. Ọ bụrụ na ọnụahịa dị 0, a gaghị ewepụ ihe null. Enweghị arụmụka bara uru , akwụghachila uru ugbu a.

Na -d ọkọlọtọ, a na-edozi uru bara uru. (Ntọala mbụ bụ 1, ya bụ, nulls na-ewepụ.) Site na ọkọlọtọ-ọkọlọtọ, a na-ahazi uru maka aha spawn aha, ma ọ bụghị ya, ọ bụ maka usoro a dị ugbu a .

Ma wepụrụ ma ọ bụ ma ọ bụ na o nweghị ihe ọ bụla, Olileanya ga-eme ka octets na-ezighi ezi gaa na log na stdout.

zipu eriri [-flags]
Na-eziga eriri na usoro ugbu a . Dịka ọmụmaatụ, iwu ahụ

zipu "hello ụwa \ r"

na-eziga ihe odide, helloworld na usoro ugbu a . (Tcl nwere iwu na-ebipụta akwụkwọ (nke a na-akpọ usoro ) nke nwere ike ịmepụta mkpịsị mgbagwoju anya.)

A na-ezipụ ndị mmadụ ozugbo ọ bụ ezie na mmemme ndị nwere ntinye ederede agaghị agụ ihe odide ahụ ruo mgbe ezigara ezigara. A na-egosipụta njirimara nzaghachi "\ r".

Ogwe ọkọlọtọ - arụmụka na - esote na - atụgharịrị dịka eriri karịa ọkọlọtọ. Enwere ike ibu ụzọ ọ bụla "-" ma ọ bụ na ọ dị ka ọkọlọtọ. Nke a na-enye usoro a pụrụ ịdabere na ya iji kọwaa ụdọ dị iche iche n'emeghị ka ndị na-ahụghị anya dị ka flags. (Mkpịsị ụda niile na-amalite na - - "echekwara maka nhọrọ n'ọdịnihu.)

The flag na-ekwupụta na a ga-eziga eriri na spawn_id. Ọ bụrụ na spawn_id bụ user_spawn_id , na ọnụego dị na ntanetịime , a na-asụgharị ihe ọhụrụ n'ime eriri ka ha weghachite ntụgharị usoro ọhụrụ ka ha wee dị ka à ga-asị na ọnụahịa ahụ dị na ya. The ọkọlọtọ -raw na- egbochi nsụgharị a.

Ụdị-ọkọlọtọ na-eziga mkpụrụ edemede efu (0 bytes). Site na ndabara, ezigara otu null. Nọmba nwere ike ịgbaso -null iji gosipụta ọtụtụ nulls iziga.

Ọkọlọtọ-ọkọlọtọ na-akpata ọnọdụ ezumike. Nke a bụ ihe ezi uche dị na ya ma ọ bụrụ na nnwere onwe id na-ezo aka na tty ngwaọrụ meghere site na "spawn -open". Ọ bụrụ na ịmepụtara usoro dị ka ntutu, ị ga-eji mgbakọ tip maka ịmepụta ezumike.

A na -eji ọkọlọtọ na-ezipụ "ọkọlọtọ" -a ọkọlọtọ na-arụ ọrụ iji zite "nwayọọ nwayọọ", wee zere ọnọdụ nkịtị ebe kọmputa na-apụtapụta ihe ntinye aka nke e mere maka mmadụ nke na-enweghị ike ịpụta otu nchekwa ahụ . Ihe ngosi a na-achịkwa uru nke agbanwe "send_slow" nke na-ewe ndepụta abụọ. Ihe mbido bụ ọnụọgụgụ nke na-akọwa ọnụọgụgụ nke octets iji zipụ atamatu. Ihe nke abụọ bụ ezigbo nọmba na-akọwa ọnụọgụgụ nke sekọnd nke na-ezigara atomic ahụ ga-ekewapụ. Dịka ọmụmaatụ, "ịtọ send_slow {10 .001}" ga-amanye "izipu -s" iji zipụ ụdọ na 1 millisecond dị n'agbata mkpụrụ edemede 10 ọ bụla ezitere.

Na -h ọkọlọtọ agha mmepụta ga-ezitere (dịtụ) dị ka mmadụ dee n'ezie. Oge igbu mmadụ na-apụta n'etiti ihe odide. (The algorithm dabeere na Weibull nkesa, na mgbanwe iji kwekọọ na nke a ngwa ngwa.) Nke a mmepụta na-achịkwa uru nke agbanwe "send_human" nke na-ewe a ise ndepụta. Ihe abuo abuo abuo bu uzo ozo di iche iche na nkeji. Nke mbụ na-eji ndabara. A na-eji nke abụọ mee ihe n'okwu okwu, iji mee ka nkwụsịtụ dị mfe na-eme mgbe ụfọdụ na ntụgharị dị otú ahụ. Ntọala nke atọ bụ otu mgbanwe nke ebe .1 dị nnọọ agbanwe, 1 na-agbanwe agbanwe n'ụzọ dị mfe, na 10 enweghi ike ịnwụ. Ihe kachasị oke bụ 0 na njedebe. Ihe abụọ nke ikpeazụ a bụ, karịchaa, oge kachasị nta na oge kachasị ọnụ. Oke kachasị na kachasị na-eji ikpeazụ ma "clip" oge ikpeazụ. Ọnụ ọgụgụ kachasị elu nwere ike ịdị nnọọ iche na nke enyere n'ogologo ma ọ bụrụ na opekempe kachasị na oke kacha ezu.

Dịka ọmụmaatụ, iwu na-esonụ na-emetụta ngwa ngwa ngwa ngwa:

setịpụrụ sent_human {.1 .3 1 .05 2} send -h "Agụụ na-agụ m. Ka anyị rie nri ehihie."

ebe ndị na-esonụ nwere ike ịba uru mgbe ọ kwụsịrị:

setịpụrụ sent_human {.4 .4 .2 .5 100} zipu -h "Ụdị nkwụsị nke otu ụbọchị mma!"

Rịba ama na enweghị nchịkọta, ọ bụ ezie na ị nwere ike ịhazi nrụrụ aka njehie site n'itinye mmejọ na ndozi na nzaghachi ozi.

Ụdị maka izipụ mkpụrụ edemede null, maka izipu ezumike, maka ịmalite mmepụta ngwa ngwa na maka mmepụta ihe ndị mmadụ na-akpata. Naanị otu akọwapụtara ikpeazụ ga-eji. Ọzọkwa, enweghị arụmụka mkparịta ụka nwere ike ịkọwa ya na ọkọlọtọ maka izipụ mkpụrụ edemede efu ma ọ bụ agbaji.

Ọ bụ ihe dị mma ị ga-ebu ụzọ zipụ ozi mbụ ahụ site n'ichere ya . echere ka ichere ka usoro a malite, mgbe ezigaghi ike. Karịsịa, ọ bụrụ na eziga mbụ ahụ mechara tupu usoro ahụ amalite na-agba ọsọ, ị na-agba ọsọ na ịnweta data gị. N'ọnọdụ ebe mmemme mmemme na-enye enweghị mmalite, i nwere ike ibu ụzọ zipụ site na igbu oge dị ka:

# Iji zere ịnye ndị na - agba ọsọ na - agba ọsọ na - esi agbaji, # usoro a anaghị eme ka okwupụta mpụga. # Chere maka sekọnd 5 maka iwepụ zuru ezu spawn telnet very.secure.gov sleep 5 send password \ r

exp_send bụ aha aha maka izipu. Ọ bụrụ na ị na-eji Expectk ma ọ bụ ihe ọzọ dị iche iche nke Na-atụ anya na Tk gburugburu ebe obibi, zipu na -akọwa site Tk maka nzube kpamkpam. exp_send nyere maka ndakọrịta n'etiti gburugburu. Edere aha ndị ọzọ maka ihe ndị ọzọ na-ezigara ndị ọzọ.

send_error [-flags] eriri
dị ka izipu , ma ọ bụrụ na e zipụrụ mmepụta ahụ na stderr karịa usoro a dị ugbu a .

send_log [-] eriri
dị ka izipu , ma ọ bụrụ na e zigara eriri ahụ na log faịlụ (lee log_file .) A na-eleghara arụmụka anya ma ọ bụrụ na ọ nweghị faịlụ ndekọ dị.

send_tty [-flags] eriri
dị ka izipu , ma ọ bụrụ na a zipụrụ mmepụta na / dev / tty kama usoro a dị ugbu a .

send_user [-flags] eriri
dị ka izipu , ma e wezụga na e zipụrụ mmepụta ahụ ka ọ bụrụ ihe dị mma karịa usoro a dị ugbu a .

ụra ụra
eme ka edemede ahụ dinara maka nọmba enyere nke sekọnd. Sekọnd nwere ike ịbụ nọmba ọnụ. Akwụsị (ma ihe Tk ma ọ bụrụ na ị na-eji Expectk) arụ ọrụ mgbe ị na-atụ anya ụra.

usoro nke argon [args]
emepụta usoro ohuru na-agba ọsọ "usoro args". A na-ejikọta ya, stdout na stderr na Echere, ka ha wee nwee ike ịgụ ma dee ya site na ndị ọzọ na- atụ anya iwu. Njikọ ahụ gbajiri site na nso ma ọ bụ ma ọ bụrụ na usoro ahụ mechie ọ bụla nke njirimara faịlụ.

Mgbe usoro malitere site na spawn , a na-edozi agbanwe spawn_id na ihe ederede na-ezo aka na usoro ahụ . Usoro a kọwara site na spawn_id bụ " usoro ugbu a ". spawn_id nwere ike ịgụ ma ọ bụ ederede, dịka inye ọrụ nchịkwa ọrụ.

user_spawn_id bụ ụyọkọ zuru ụwa ọnụ nwere ihe ndekọ nke na-ezo aka na onye ọrụ ahụ. Dịka ọmụmaatụ, mgbe spawn_id dị na uru a, na- atụ anya na- eme omume dị ka expect_user .

.Ihie error_spawn_id bụ mgbanwe zuru ụwa ọnụ nwere ihe ederede nke na - ezo aka na njehie ahụ. Dịka ọmụmaatụ, mgbe spawn_id dị na uru a, zipu omume dika send_error .

tty_spawn_id bụ ụyọkọ zuru ụwa ọnụ nwere ihe descriptor nke na-ezo aka / dev / tty. Ọ bụrụ na / dev / tty adịghị adị (dịka na cron, na, ma ọ bụ ihe odide batch), mgbe ahụ tty_spawn_id adịghị akọwa. Enwere ike ịnwale nke a dị ka:

ma ọ bụrụ na {[Ama vars tty_spawn_id]} {# / dev / tty exists} ọzọ {# / dev / tty adịghị adị # eleghị anya na cron, ogbe, ma ọ bụ na edemede}

spawn weghachite usoro UNIX id. Ọ bụrụ na enweghị usoro ọ bụla, 0 laghachiri. A na- ahazi spawn_out (ohu, aha) aha nke pty ohu ngwaọrụ.

Na ndabara, spawn na- azaghachi aha iwu na arụmụka. The flag- flag na-akwụsị spawn na-eme nke a.

Ụda ọkọlọtọ-ọkọlọtọ na-eme ka mmepụta njikwa na-ebutegharị gaa na usoro a gbanwere . Enweghị nkwado a na usoro niile.

N'ụlọ, spawn na- eji pty, ebido n'otu ụzọ ahụ dị ka tty onye ọrụ. Nke a na-ebuwanye ntọala ka ntọala niile "mara" (dika stty (1)). Ọ bụrụ na akọwapụtara stety_init dị agbanwe, a na-akọwa ya na ụdị arụmụka arụmọrụ dị ka nhazi ọzọ. Dịka ọmụmaatụ, "setịpụrụ stty_init raw" ga-eme ka ikuku mmechi ndị ọzọ na-amalite na ndu ọkụ. -nottycopy na -eme ka nhazi ahụ dabere na tty onye ọrụ. -nottyinit na -eme ka ịmalite ịmalite ịmara "nke ọma".

Dị ka ọ dị, spawn anaghị ewe oge igbu. Ọ bụrụ na ị hụrụ spawn na-ewere oge dị oke mkpa, ọ ga-abụ na ọ na-ezute ọnụ ọgụgụ na-adaba. Ọtụtụ ule na-agba ọsọ na ptys iji zere itinye aka na usoro nhiere. (Nke a na-ewe 10 sekọnd ọ bụla dị mkpirikpi.) Na-agba ọsọ Na-atụ anya na nhọrọ -d ga-egosi ma ọ bụrụ na atụ anya na -ezute ọtụtụ ptys na ọnọdụ ọjọọ. Ọ bụrụ na ịnweghị ike igbu usoro a na-ejikọta ọnụ ọgụgụ ndị a, naanị ihe ị ga-eme nwere ike ịbụ ịmaliteghachi.

Ọ bụrụ na mmemme enweghị ike ịmepụta nke ọma n'ihi na exec (2) adaghị (dịka mgbe mmemme anaghị adị), a ga-ezipụ ozi nhie site na-esote ma ọ bụ ịtụ anya iwu dị ka a ga-asị na mmemme amalitela ma mepụta ozi njehie dịka mmepụta. Omume a bụ ihe sitere na mmejuputa nke spawn . N'akụkụ ala, ihe ndị a na-emepụta, mgbe nke ahụ gasịrị, usoro a na-emegharị adịghị enwe ụzọ isi kwurịta okwu nke mbụ na- atụ anya ma ọ bụghị site na nkwurịta okwu site na spawn_id.

Akara -open na- akpata arụmụka na-esonụ ka a kọwaa dịka ihe njirimara faịlụ Tcl (ntụgharị, weghachite site na imeghe .) A na-ejikwa ohere idozi ya dị ka ọ bụrụ na ọ bụ usoro a na-emepụta. (Njirimara faịlụ agaghịzi eji ya.) Nke a na-ahapụ gị ka ị na-emeso ngwaọrụ dị iche iche, faịlụ, na pipelines dịka a na-emepụta usoro na-enweghị iji pty. 0 laghachiri iji gosi na e nweghị usoro metụtara ya . Mgbe ejikọtara njikọ na usoro a na-emechi emechi, otú ahụ ka ngosipụta Tcl. The -leaveopen ọkọlọtọ dị ka -open ma ọ bụrụ na -leaveopen na- eme ka a mata ihe nchọpụta faịlụ ọbụlagodi mgbe ezipụchara anya id.

Oke -pty ọkọlọtọ na-eme ka a meghee pty ma a gaghị emepụta usoro ọ bụla. 0 laghachiri iji gosi na e nweghị usoro metụtara ya . Spawn_id dị ka ọ dị na mbụ.

A na- edozi spawn_out agbanwe (ohu, fd) na njirimara faịlụ dịka ohu pty. Enwere ike mechie ya site na iji "nso" -ahụhụ ".

Akara mara mma na- ede ihe mgbaàmà a ga-eleghara anya na usoro a na-agbanye . Ma ọ bụghị ya, egosi na ị ga-enweta omume ndabara. A na-akpọ akara ngosi dị ka iwu ọnyà , ma ọ bụrụ na akara ọ bụla chọrọ ọkọlọtọ dị iche.

agbatị
eme ka okwu ndị a ga-ebipụta tupu e gbuo gị. (Usoro Tc trace na-egosi mgbanwe dị iche iche.) Ọkwa na- egosi ebe dị ala na nchịkọta oku iji chọpụta. Dịka ọmụmaatụ, iwu na-esonụ ga- atụ anya ka ị na-achọpụta ọkwa mbụ nke 4, mana ọ nweghị n'okpuru.

atụ anya -c "strace 4" script.exp

Akara Ama-Ama na- eme ka ọ gbanwee nkọwa nke ihe arụmụka kachasị na-adịbeghị anya nyere.

stty args
gbanwee ụdị ihuenyo dịka iwu iwu nke stety.

Site na ndabara, njikwa na-achịkwa na-enweta. Enwere ike ịnweta ngwụsị ọzọ site na ịchọrọ "Ịza ajụjụ maka ọnọdụ ịlaghachite ya dị ka iwu nke iwu ahụ." Ọ bụrụ na a rịọghị ọkwa ọ bụla, a ga-enwetakwa akara njikwa, ọnọdụ aga n'ihu nke njirimara azụ na ntanghachi na-azụghachi n'ụdị nke ga-emesị bụrụ eji iwu.

Dịka ọmụmaatụ, arụmụka dị mma ma ọ bụ na- ejikọta na- etinye ọnụ na njedebe. Ihe arụmụka -raw ma ọ bụ ka esi etinye nkwụnye ahụ n'ime usoro a na-esi nri. Arụmụka ahụ na- emeghachi ma -echo na- etinye ọnụahịa ahụ na ntụgharị na noecho mode.

Ihe atụ na-esonụ na-egosiputa otu esi kwụsị gbanyụọ mgbanyụghachi. Enwere ike iji nke a na-ederede akụrụngwa iji zere inyoghachite okwuntughe n'ime ha. (Lee nkobara anya banyere nke a n'okpuru UZI NDỊ NA-ECHIKA n'okpuru.)

stty -echo send_user "Paswọdu:" expect_user -re "(. *) \ n" setịpụ paswọọdụ $ expect_out (1, eriri) stty echo

usoro args
na-enye ihe nkedo na sh (1) dị ka ntinye, dịka a ga-asị na e debere ya dịka iwu sitere na ọnụ. Olileanya na- eche ruo mgbe shea ga-akwụsị. A na-edozi ọnọdụ nlọghachi site na sh na otu ụzọ ahụ nke na - eji aka ya laghachi azụ.

N'adịghị ka mbibi nke na-ebute stdin ma na-adabere na edemede ahụ, usoro enweghị usoro redirection (nke ọzọ karịa nke eriri n'onwe ya). Ya mere, ọ ga-ekwe omume iji mmemme ndị ga-ekwurịta okwu na / dev / tty. Maka otu ihe ahụ, abaghị usoro nke usoro na log.

timestamp [args]
weghachite timestamp. Enweghị arụmụka, ọnụọgụgụ nke sekọnd ebe ọ bụ na azụghachitara oge.

The flag -format ọkọlọtọ na-ewepụta eriri nke a laghachiri ma na-etinye n'ọnọdụ dịka iwu POSIX maka strftime. Dịka ọmụmaatụ% a na-anọchi aha ụbọchị izu ike (ntụgharị, Sat). Ndị ọzọ bụ:

% aha aha ụbọchị izu ike% A ụbọchị izu ụbọchị dum% b ụbọchị ọnwa abbreviated% B ọnwa zuru ezu% c ụbọchị oge dị ka: Wed Oct 11 11:45:56 1993% d ụbọchị nke ọnwa (01-31% H hour (00-23)% Na oge (01-12)% ụbọchị (001-366)% m ọnwa (01-12)% M nkeji (00-59)% p am ma ọ bụ pm% S nke abụọ (00-61) % ụbọchị (1-7, Monday bụ ụbọchị mbụ n'izu)% U n'izu (00-53, Sunday mbụ bụ ụbọchị mbụ nke izu otu)% V izu (01-53, ISO 8601 ụdị)% w ụbọchị (0- 6)% W izu (00-53, Monday mbụ bụ ụbọchị mbụ nke izu otu)% x ụbọchị-oge dị ka: Wed Oct 6 1993% X oge dị ka: 23:59:59% afọ (00-99) % Y afọ dị ka: 1993% Z timezone (ma ọ bụ ihe ọ bụla ma ọ bụrụ na ọ bụrụ na a pụghị ịchọpụta) %% akara percent akara

Ndị ọzọ% akọwapụtara ezighi ezi. A ga-agafe ihe odide ndị ọzọ n'enweghị nsogbu. Naanị obodo C na-akwado.

Ọkọlọtọ na-egosi na ọnụọgụgụ nke sekọnd kemgbe ọ ga-eji oge elee anya dị ka isi iyi si. Ma ọ bụghị ya, eji oge ugbu a.

Ogwe aka -gmt na- emepụta timestamp mmepụta iji oge GMT GMT . Enweghị ọkọlọtọ, eji mpaghara mpagharazonezone.

ọnyà [[iwu] na-egosi]
na-eme ka iwu ahụ nyere iwu ka e gbuo ya maka nzaghachi ọhụụ nke ọ bụla nke akara ngosi ahụ enyere. Ejiri iwu ahụ zuru ụwa ọnụ. Ọ bụrụ na iwu anaghị adị, arụ ọrụ mgbaàmà ahụ laghachiri. Ọ bụrụ na iwu bụ eriri SIG_IGN, a na-eleghara akara ndị ahụ anya. Ọ bụrụ na iwu bụ eriri SIG_DFL, ihe nrịbama ahụ ga - esi na ndabara usoro. ihe ngosi bụ ma ọ bụ otu mgbaàmà ma ọ bụ ndepụta nke akara. A pụrụ ịkọwa akara ọhụụ ma ọ bụ ihe atụ dị ka nke mgbaàmà (3). Enwere ike ịkwụsị "prefex" SIG.

Na enweghị arụmụka (ma ọ bụ arụmụka -number), ọnyà na- alaghachi nọmba akara nke iwu ọnyà ahụ ugbu a.

The ọkọlọtọ -code na- eji koodu nloghachi nke iwu ahụ n'ọnọdụ ebe koodu Tcl na-aga ịlaghachi mgbe iwu ahụ malitere na-agba ọsọ.

Akara a na- emepụta iwu na-eme ka a tụlee iwu ahụ site na iji ntụgharị okwu arụ ọrụ n'oge ahụ iwu ahụ malitere agba ọsọ kama mgbe ekwuputara ọnyà ahụ.

Ntọala aha-akara na-akpata iwu ọnyà iji weghachite aha mgbaàmà nke iwu ọnyà a na-eme ugbu a.

Akara -max na- eme ka ọnyà ọnyà ahụ weghachite nọmba mgbaàmà kachasị elu nke nwere ike ịtọ.

Dịka ọmụmaatụ, iwu "ọnyà {send_user" Ouch! "} SIGINT" ga-ebipụta "Ouch!" oge ọ bụla onye ọrụ na-eme ka 'C.

Site na ndabara, SIGINT (nke a na-emekarị site na ịpị 'C') na SIGTERM kpatara Na-atụ anya ịpụ. Nke a bụ n'ihi ọnyà na-esote, kere site na ndabara ma ọ bụrụ na atụmanya amalite.

ọnyà ọnyà {SIGINT SIGTERM}

Ọ bụrụ na ị jiri akara ọkọlọtọ -D ka ịmalite onye nbube ahụ, SIGINT ka agbapụtaghachi ka ị malite debugger mmekọrịta. Nke a bụ n'ihi ọnyà na-esonụ:

ọnyà {exp_debug 1} SIGINT

A pụrụ ịgbanwe ọnyà mkpofu ahụ site na itinye ọnọdụ gburugburu ebe obibi EXPECT_DEBUG_INIT maka iwu ọnyà ọhụrụ.

Ị nwere ike, n'ezie, kpochapụ abụọ ndị a site n'ịgbakwụnye iwu ọnyà na akwukwọ gị. Karịsịa, ọ bụrụ na ị nwere "ọnyà mpụga SIGINT", nke a ga-agbagha ọnyà mkpofu ahụ. Nke a bara uru ma ọ bụrụ na ịchọrọ igbochi ndị ọrụ ịbịaru onye nbufu ahụ.

Ọ bụrụ na ịchọrọ ịkọwa ọnyà nke gị na SIGINT ma ka ọnyà na-arụ ọrụ mgbe ọ na-agba ọsọ, jiri:

ma ọ bụrụ na {! [exp_debug]} {ọnyà mystuff SIGINT}

N'aka nke ọzọ, ị nwere ike ịdọrọ onye na-arụ ọrụ na-eji ihe mgbaàmà ọzọ.

ọnyà agaghị ekwe ka ị kwụsị ọrụ maka SIGALRM dịka a na-eji ya na- atụ anya . Ntọala nke iwu ahụ na-edozi SIGALRM ka SIG_IGN (eleghara). Ị nwere ike iweghachi nke a ma ọ bụrụhaala na ị gbanyụọ ya n'oge iwu ntinye.

Hụ akara (3) maka inweta ozi.

chere [args]
na-egbu oge ruo mgbe usoro a na-emepụta (ma ọ bụ usoro nke ugbu a ma ọ bụrụ na ọ dịghị onye a na-akpọ) na-akwụsị.

ichere na -alaghachite ndepụta nke ọnụọgụ anọ. Mbido mbụ bụ pid nke usoro a na-echere. Njirimara nke abụọ bụ akara ntụgharị kwekọrọ ekwekọ id. Igwe nke atọ bụ -1 ma ọ bụrụ na eriri ọrụ sistemụ, ma ọ bụ 0 ma ọ bụghị. Ọ bụrụ na ọnụọgụ nke atọ bụ 0, njigide nke anọ bụ ọnọdụ nke usoro ntanetịpụtara. Ọ bụrụ na ọnụọgụ nke atọ bụ -1, ọnụọgụ nke anọ bụ uru nke errno setịpụrụ na sistemụ arụmọrụ. A na-edozi njehie njehie zuru ụwa ọnụ.

Ihe ndị ọzọ nwere ike ịpụta na njedebe nke uru nloghachi na ichere . Nhọrọ ise nke nhọrọ na-akọwa ọkwa nke ozi. Ugbu a, naanị uru bara uru maka mmewere a bụ CHILDKILLED bụ ebe ọnụọgụ abụọ na-esonụ bụ aha akara ngosi C na nkọwa nkọwa dị mkpirikpi.

Ọkọlọtọ-ọkọlọtọ na-ekwupụta usoro ahụ iji chere kwekọrọ na spawn_id aha (BỤGHỊ id id). N'ime onye na-eduzi SIGCHLD, ọ ga-ekwe omume ichere maka usoro ọ bụla eji eme ihe site n'iji spawn id -1.

Ụdị ọkwa -nowait na- eme ka ichere ịlaghachi ozugbo na ngosipụta nke nchere nke ọma. Mgbe usoro ahụ ga - apụ (emesịa), ọ ga - apụ kpamkpam n'enweghị mkpa maka ichere echere.

A pụkwara iji ndokwa echere chere maka usoro a jụrụ iji arụmụka "-i -1". N'adịghị ka eji ya eme ihe, a pụrụ igbu iwu a n'oge ọ bụla. Enweghị usoro ịchịkwa usoro a na-ewe. Otú ọ dị, a ga-enyocha ọnụọgụ azụ maka id id.

AKWỤKWỌ

Na-atụ anya na-akpaghị aka na-ama banyere ụlọ akwụkwọ abụọ ewuru na-agụ maka akwukwọ ederede. A na-akọwa ihe ndị a site na ndekọ aha ndị a na-akpọ na ndabara exp_library na exp_exec_library. A na-ezube ha abụọ iji nwee faịlụ ndị nwere ike iji ederede ndị ọzọ.

ụlọ ọrụ ndị ahụ nwere faịlụ ndị nweere onwe ha. exp_exec_library nwere faịlụ na-adabere n'ụdị ụlọ. Dabere na usoro gị, akwụkwọ ntuziaka abụọ ahụ nwere ike bụrụ ihe efu. Ịdị adị nke faịlụ $ exp_exec_library / cat-buffers na-akọwa ma nkata / bin / cat buffers site na ndabara.

AKWỤKWỤKWỤKWỌ NDỊ DỊ N'IME YA

Ebumnuche dị mma dị mma maka ederede Akwụkwọ edemede anya . Iche na nghota vgrind nyere na nkesa a na- achọ anya ka edozi ya, i nwere ike iji ya dika:

vgrind -lexlex file

Ihe atụ

Ọ na-apụtaghị otú e si etinye ihe niile ọnụ na nwoke ahụ na- akọwa. Ana m agba gị ume ka ị gụọ ma gbasaa ihe atụ na nchịkọta akụkọ nke Distribution Expect . Ụfọdụ n'ime ha bụ ezigbo mmemme. Ndị ọzọ bụ naanị ihe atụ nke ụfọdụ usoro, na n'ezie, di na nwunye dị nnọọ ngwa ngwa hacks. AKWỤKWỌ faịlụ nwere nyocha ngwa ngwa nke mmemme ndị a.

Akwụkwọ ndị a na- achọ anya (lee Lee OZI) bara uru. Ọ bụ ezie na ụfọdụ akwụkwọ na-eji syntax kwekọrọ na nsụgharị nsụgharị nke Atụ anya, ihe ndị na-eso ya ka dị irè ma gaa ọtụtụ nkowa karia akwụkwọ nwoke a.

OBU

Mgbakwunye nwere ike ijikọta aha iwu iwu. Dịka ọmụmaatụ, zipụ ka Tk kọwaa maka nzube dị iche. N'ihi nke a, ihe ka ọtụtụ iwu ndị a na- achọ anya dị ka "exp_XXXX". Iwu na mgbanwe dị iche iche na-amalite site na "exp", "inter", "spawn", na "oge oge" anaghị enwe aha. Jiri iwu agbakwunyere ma ọ bụrụ na ịchọrọ ndakọrịta a n'etiti gburugburu.

Olileanya na- ewere echiche nke nnwere onwe nke ịchọta ihe. Karịsịa, a ga-achọ ụzọ dị iche iche a na-agụ site na iwu ndị a kapịrị ọnụ maka usoro ihe omume ahụ site na mpaghara, ma ọ bụrụ na ọ bụghị nke ahụ, n'ime ụwa dum. Dịka ọmụmaatụ, nke a na-ewepụ mkpa ọ dị itinye "oge niile zuru ụwa ọnụ" na usoro ọ bụla ị dee nke na- atụ anya ya . N'aka nke ọzọ, mgbanwe ndị edere edere na mpaghara mpaghara (ọ gwụla ma enyere iwu "zuru ụwa ọnụ"). Nsogbu kachasị emetụta nke a bụ mgbe a na-egbu spawn na usoro. N'èzí usoro ahụ, spawn_id adịghịzi adị, ya mere, usoro a na-emegharị adịghịzi enwe ike ịnweta nanị n'ihi ịkọ ihe. Tinye "global spawn_id" na usoro dị otú ahụ.

Ọ bụrụ na ịnweghị ike ịme ka ike ịme ihe dị iche iche (ntụgharị, usoro gị kwadoro ma họrọ (BSD *. *), Poll (SVR> 2), maọbụ ihe yiri ya), Olileanya ga-enwe ike ịchịkwa otu usoro n'otu oge. N'okwu a, agbalịrị ịtọ spawn_id , ma ọ bụ ị ga-eme usoro site na exec mgbe usoro ntinye na -agba ọsọ. Ọzọkwa, ị gaghị enwe ike ịtụ anya site na ọtụtụ usoro (gụnyere onye ọrụ dịka otu) n'otu oge ahụ.

Ogwe njedebe nwere ike inwe mmetụta dị ukwuu na edemede. Dịka ọmụmaatụ, ọ bụrụ na edere ederede ka ịchọọ nchọtaghachi, ọ ga-emehie ma ọ bụrụ na agbanyụ ọkụ. Maka nke a, Chee anya ka ndị agha na-ahụ maka njedebe ọhụụ. N'ụzọ dị mwute, nke a nwere ike ime ka ihe na-adịghị mma maka mmemme ndị ọzọ. Dị ka ọmụmaatụ, emacs shea chọrọ ịgbanwe "ihe ndị a" na-emepụta: ihe ọhụrụ na-emepụta ka ọ bụrụ ihe ọhụụ kama iji ebugharị-ọbịbịa ntanetịghachi, na nkwụghachighachi nwere nkwarụ. Nke a na-enye onye ọ bụla ohere iji emacs dezie ndenye ntinye. O di nwute, enwere ike ichota nke a.

Ị nwere ike ịrịọ ka enwere anya na ị gaghị eme ka ọnọdụ ya dị nfe nke njedebe nke njedebe, ma ị ga-akpacha anya mgbe ịde ederede maka gburugburu dị otú ahụ. N'ihe banyere emacs, zere na-adabere na ihe dịka ntụgharị na njedebe nkwụsị.

Iwu ndị nabatara arụmụka agbadoro n'otu ndepụta ( atụmanya anya ma na- emekọ ihe ) jiri mkparịta ụka mee mkpebi ma ọ bụrụ na ndepụta ahụ bụ otu esemokwu ma ọ bụ ọtụtụ. Ntughari a nwere ike ịdaba naanị n'okwu ahụ mgbe ndepụta ahụ na-anọchite anya otu arụmụka nke nwere otutu ntinye n '\ n na ndị na-abụghị ndị ọcha dị n'etiti ha. Nke a dị ka ọ ga-ekweghị mma, ma agbanyeghị "arụmụka" nwere ike iji mee ka esemokwu dịka otu arụmụka. Enwere ike iji nke a mee ihe n'eji igwe eme ihe. N'otu aka ahụ, -ebe a na-eme ka esemokwu dị iche iche bụrụ usoro dịka ọtụtụ ụkpụrụ / omume.

OBI

Ọ bụ ihe na-adọrọ adọrọ ịkpọ aha "mmekọahụ" (maka "Smart EXec" ma ọ bụ "Send-Expect"), ma ezi uche (ma ọ bụ ma eleghị anya, Puritanism) meriri.

Na usoro ụfọdụ, mgbe a na-agbaba shei, ọ na-eme mkpesa banyere enweghị ike ịnweta tty ma na-agba ọsọ ọ bụla. Nke a pụtara usoro gị nwere usoro maka ịnweta ịchịkwa tty nke atụghị anya na ọ maghị. Biko chọpụta ihe ọ bụ, zitere m ozi a.

Ultrix 4.1 (ma ọ dịkarịa ala nsụgharị ndị ọhụrụ na gburugburu ebe a) weere oge nke n'elu 1000000 iji yie 0.

Digital UNIX 4.0A (na eleghị anya nsụgharị ndị ọzọ) na-ajụ ịnye ptys ma ọ bụrụ na ị kọwapụta onye na-arụ ọrụ SIGCHLD. Lee akwukwo enyere maka ihe omuma.

IRIX 6.0 anaghị edozi ikike pty n'ụzọ ziri ezi ka ọ bụrụ na ọ bụrụ na ị chọrọ itinye aka pty nke onye ọzọ jiribu, ọ daa. Nwelite ka IRIX 6.1.

Telnet (nyochaa naanị n'okpuru SunOS 4.1.2) kwenyere ma ọ bụrụ na ejighị TERM. Nke a bụ nsogbu n'okpuru cron, na na na scripts cgi, nke na-akọwaghị TERM. Ya mere, ị ghaghị idozi ya n'ụzọ doro anya - n'ụdị ụdị dịkarịghị mkpa. Ọ ghaghị itinye ya n'ihe ọ bụla! Ihe ndị na-esonụ nwere ike ịba uru maka ọtụtụ ikpe.

tinye env (TERM) vt100

Ntụle (kwenyero naanị n'okpuru BSDI BSD / Os 3.1 i386) kwụlitere ma ọ bụrụ na SHELL na Ụlọ anaghị edozi. Nke a bụ nsogbu n'okpuru cron , na na na scripts cgi , nke na-akọwaghị mgbanwe ndị a na gburugburu ebe obibi. Ya mere, ị ghaghị idozi ha n'ụzọ doro anya - n'ụdị ụdị ọ dịkarịghị mkpa. Ọ ghaghị itinye ya n'ihe ọ bụla! Ihe ndị na-esonụ nwere ike ịba uru maka ọtụtụ ikpe.

ele anya (SHELL) / bin / sh set env (HOME) / usr / local / bin

Emere ụfọdụ mmejuputa nke ptys ka kernel wepụ ihe ọ bụla a na-agụghị edepụta n'agbata 10 ruo 15 sekọnd (ọnụ ọgụgụ n'ezie bụ ịdabere na-adabere) mgbe usoro ahụ mechibidoro ihe odide faịlụ ahụ. N'ihi ya ihe omume dị egwu dị ka

ezumike ụra na-ehi ụra 20 na-atụ anya

ga-ada. Iji zere nke a, jikọta mmemme mmemme na-abụghị nke mmekọrịta kama imepụta ya . Ọ bụ ezie na ọnọdụ dị otú a pụrụ ichepụta, na omume ọ dịtụbeghị mgbe m zutere ọnọdụ nke mmemme ikpeazụ nke mmemme mmemme ga-efu n'ihi omume a.

N'aka nke ọzọ, Cray UNICOS ptys na-atụfu ihe ọ bụla a na-agụghị edepụta ozugbo usoro ahụ mechibidoro ihe odide faịlụ ahụ. Agwara m nke a na Cray ma ha na-arụ ọrụ na nhazi.

Mgbe ụfọdụ, achọrọ oge n'etiti ọsọ na nzaghachi, dịka mgbe tty interface na-agbanwe agbanwe UART ma ọ bụ na- atụle ọnụego baud site n'ịchọ mmalite / kwụsị ibe n'ibe. Na-emekarị, ihe niile a chọrọ ka ihi ụra maka nke abụọ ma ọ bụ abụọ. Usoro siri ike karị bụ iji nwetaghachi ruo mgbe ngwaike dị njikere ịnata ndenye. Ihe atụ na-esonụ na-eji usoro abụọ ahụ:

zipu "ọsọ 9600 \ r"; ụra 1 na-atụ anya {oge oge niile [zipu "\ r"; exp_continue} $ ozugbo}

trap -code agaghị arụ ọrụ ọ bụla iwu na-anọdụ na Tcl ihe omume loop, dị ka ụra. Nsogbu bụ na na ihe omume aka, Tcl kwụsịrị koodu nlọghachi site na async omume handlers. Mgbidi gburugburu bụ ịtọ ọkọlọtọ na koodu ọnyà. Chee ọkọlọtọ ozugbo mgbe iwu ahụ (ntụgharị, ụra).

Ntugharị anya_background na-eleghara ihe arụmụka-oge na-enweghị echiche nke oge oge n'ozuzu.

& # 34; ECHICHE ECHICHE & # 34;

E nwere ihe ole na ole banyere Olileanya nke nwere ike ịbụ nke na-adịghị emetuta. Nkebi nke a na-agbali iji ụfọdụ aro aro ụfọdụ n'ime ihe ndị a.

Ihe a na-echekarị na nsogbu bụ otú ị ga-esi amata mpi. Ebe ọ bụ na ndị a dị iche iche na-ahaziri iche site na ndị dị iche na ndị dị iche iche na-amụba, ọ ga-abụrịrị na ọ na-esiri gị ike ịme ihe rlogin n'amaghị ama. Otu mgbakọ nwere ezi uche bụ ka ndị ọrụ na-echekwa okwu mgbe niile na-akọwa ngwa ngwa (akpan akpan, njedebe ya) na agbanwe gburugburu ebe obibi EXPECT_PROMPT. Usoro dị ka nke a nwere ike iji. Ọ bụrụ na EXPECT_PROMPT adịghị adị, koodu ahụ ka nwere ohere dị mma na-arụ ọrụ n'ụzọ ziri ezi.

kpalite ozugbo "(% | # | \\ $) $"; # nkwụsị ndabara jidere (setịpụ $ env (EXPECT_PROMPT)} na-atụ anya - gaa $ ozugbo

M na-agba gị ume ka ị dee ihe atụ nke na-agụnye njedebe nke ihe ọ bụla ị na-atụ anya ịhụ. Nke a na-egbochi ịza ajụjụ tupu ị hụ ihe niile. Tụkwasị na nke a, ọ bụ ezie na ị nwere ike ịza ajụjụ tupu ị hụ ha kpamkpam, ọ bụrụ na ị zara n'oge, azịza gị nwere ike ịpụta azụghachi n'agbata ajụjụ ahụ. N'ikwu okwu ndị ọzọ, mkparịta ụka a ga-esi na ya pụta ga-abụ ihe ziri ezi ma na-ele ya anya.

Ọtụtụ n'ime ha na-agụnye njirimara oghere na njedebe. Dịka ọmụmaatụ, ngwa si ftp bụ 'f', 't', 'p', '>' na. Iji kwado oge a, ị ghaghị ịdekọ maka onye ọ bụla n'ime ndị a. Ọ bụ ihe na-emekarị ka ị ghara itinye oghere ahụ. Tinye oghere ahụ n'ụzọ doro anya.

Ọ bụrụ na ị na-eji ụdị nke ụdị X *, * * ga-adaba na mmepụta niile natara site na njedebe X ruo ihe ikpeazụ natara. Nke a na-ada ụma ma ọ nwere ike ịdịtụ mgbagwoju anya n'ihi na okwu ahụ bụ "ihe ikpeazụ natara" nwere ike ịdịgasị iche dabere na ọsọ nke kọmputa na nhazi nke I / O site na kernel na onye ọkwọ ụgbọala.

Karịsịa, ụmụ mmadụ na-ahụkarị mmemme mmepụta na-abata na nnukwu chunks (mgbe ọ bụla) n'eziokwu ọtụtụ mmemme na-emeputa otu usoro n'otu oge. N'ịchọrọ na nke a bụ ikpe ahụ, na * n'ụdị nke paragraf mbụ ahụ nwere ike ọ bụ naanị na njedebe nke akara ugbu a ọ bụ ezie na o yiri ka ọ bụ karịa, n'ihi na n'oge egwuregwu ahụ bụ ihe niile natara.

atụ anya na ọ dịghị ụzọ ịmara na mmepụta ọzọ ga-abịa ọ gwụla ma usoro gị akọwapụtara ya kpọmkwem.

Ọbụna na-adabere na ịchọta akara na-adịghị mma. Ọ bụghị nanị na mmemme na-adịkarịghị ekwe nkwa banyere ụdị ahụhụ ha na-eme, mana usoro nchịkwa nwere ike ịkwụsị mmepụta ihe nke mere na nkeji na-agbaji na ebe ndị yiri ya na-adịghị. Ya mere, ọ bụrụ na ịnwere ike ịkọwa mkpụrụ edemede ole na ole ikpeazụ nke edemede mgbe ị na-ede ihe, ọ bụ ihe amamihe dị na ya ime.

Ọ bụrụ na ị na-echere usoro na mmepụta ikpeazụ nke usoro ihe omume ma usoro ihe omume ahụ na-emetụ ihe ọzọ kama, ị gaghị enwe ike ịchọpụta ya na isiokwu oge . Ihe kpatara ya bụ na atụghị anya na ọ gaghị ewepụta oge - kama ọ ga-enweta ihe ngosi. Jiri ya kama. Ọbụna ka mma, jiri ma. Ụzọ ahụ ma ọ bụrụ na agbanyeghị akara ahụ gburugburu, ị gaghị edozi akara n'onwe ya.

A na-agbanwezi oge ọhụrụ iji laghachi azụ, usoro nhazi mgbe onye ọkwọ ụgbọ ala mepụtara. Ya mere, ọ bụrụ na ịchọrọ ụkpụrụ nke ga-emetụta usoro abụọ ahụ, si, sị, printf ("foo \ nbar"), ị kwesịrị iji usoro "foo \ r \ nbar".

A sụgharịrị nsụgharị dị otú ahụ mgbe ị na-agụ site na onye ọrụ, site na expect_user . N'okwu a, mgbe ị na-alaghachi azụ, a ga-atụgharị ya na newline. Ọ bụrụ na enwere anya ka ọ gafere na nke mmemme nke na-eme ka ọnụ ya gaa n'ọnọdụ raw (dị ka telnet), a ga-enwe nsogbu, dịka usoro ihe a na-atụ anya ezi nloghachi. (Ụfọdụ mmemme na-agbagha agbaghara n'ezie na ha ga-akọwagharị oge ọhụrụ iji mee ka ha laghachi azụ, ma ọtụtụ anaghị eme ya.) N'ụzọ dị mwute, ọ dịghị ụzọ ị ga-esi chọpụta na mmemme na-etinye ya na njedebe.

Kama iji aka na-eji dochie akwụkwọ ọhụrụ na nlọghachi, ngwọta bụ iji iwu "stty raw", nke ga-akwụsị nsụgharị ahụ. Mara, nke a pụtara na ị gaghịzi enweta ụdị nhazi nhazi nke esi nri.

na- emepụta ihe ị ga-eme iji mee ka ọ bụrụ na ị ga-agbanye aka na ntanetịime ka nsogbu a ghara ibute mgbe ahụ.

Ọ na-abụkarị uru iji chekwaa okwuntughe (ma ọ bụ ozi nzuzo onwe onye ọzọ) na Akwụkwọ edemede chọrọ. A gaghị atụ aro nke a ebe ọ bụ na ihe ọ bụla echekwara na kọmputa nwere ike ịnweta onye ọ bụla. Ya mere, mkparịta ụka maka mkparịta ụka site na edemede bụ echiche dị oke nghọta karia ịchọta ha n'ụzọ nkịtị. Ka o sina dị, mgbe ụfọdụ, ntinye akwụkwọ dị otú ahụ bụ nanị ohere.

N'ụzọ dị mwute, usoro faịlụ UNIX enweghị usoro ọ bụla nke ịmepụta edemede nke a na-eme ma ọ bụ enweghị ike ịgụta. Usoro nke na-akwado ihe eji edee akpịrị akpụkpọ ụkwụ nwere ike ime ka nke a dị ka nke a:

Mepụta akwukwọ anya (nke nwere data nzuzo) dịka ọ dị na mbụ. Mee ka ikikere ya bụrụ 750 (-rwxr-x ---) ma nke otu ìgwè tụkwasịrị obi nwere, ya bụ, otu nke a na-ahapụ ka ọ gụọ ya. Ọ bụrụ na ọ dị mkpa, mepụta otu ìgwè maka nzube a. Ọzọ, mepụta edemede / bin / sh na ikikere 2751 (-rwxr-s - x) nke otu otu dịka dị na mbụ.

Nsonaazụ bụ akwukwọ nke onye ọ bụla ga-egbu (ma gụọ). Mgbe akpọrọ ya, ọ na-agba ọsọ edemede ahụ chọrọ.

& # 34; Hụ ALSO & # 34;

Tcl (3), libexpect (3)
"Ịchọgharị atụmanya: Achọpụta Ngwaọrụ Tcl maka Akwụsị Mmemme Mmekọrịta" site na Don Libes, pp. 602, ISBN 1-56592-090-2, O'Reilly na Associates, 1995.
"na-atụ anya: Ịgwọ Ahụhụ Na-adịghị Agbanwe Agbanwe nke Njikọ" nke Don Libes, Proceedings of the Summer 1990 Conference USENIX, Anaheim, California, June 11-15, 1990.
.M "Na- atụ anya ka ị rụọ ọrụ nchịkwa usoro nchịkwa nke" Don Libes, Proceedings of the 1990 USENIX Large Installation Systems Administration Conference, Colorado Springs, Colorado, October 17-19, 1990.
"Tcl: Otu Owuwu Iwu" nke John Ousterhout, Proceedings of the Winter 1990 Conference USENIX, Washington, DC, Jenụwarị 22-26, 1990..I "na-atụ anya: Mpempe akwụkwọ maka ịchịkwa mmemme mmekọrịta" site na Don Libes, Computing Systems , Vol. 4, Nke 2, Mahadum nke California Press Journals, November 1991..I "Usoro Nlereanya Nlereanya na Nhazi Mmekọrịta", site na Don Libes, Usoro nke Summer 1992 Conference USENIX, pp 135-144, San Antonio, TX, June 12-15, 1992..I "Kibitz - Ijikọta Mmekọrịta Mmekọrịta Ọtụtụ, site na Don Libes, Software - Practice & Experience, John Wiley & Sons, West Sussex, England, Vol.

23, Nke 5, May, 1993..I "Onye na-arụ ọrụ nke Tcl", nke Don Libes, Proceedings of 1993 Tcl / Tk Workshop, Berkeley, CA, June 10-11, 1993.

AUTHOR

Don Libes, National Institute of Standards and Technology

ACKNOWLEDGMENTS

Ekele John Ousterhout maka Tcl, na Scott Paisley maka mkpali. Dabere na Rob Savoye maka koodu nchịkwa nchịkwa nke Expect.

Ihe ndekọ akwụkwọ akụkọ HISTORY dị ukwuu nke mmalite nke ịtụ anya . Ọ na-eme ka ịgụ ihe na-atọ ụtọ ma nwee ike inye gị nghọta ọzọ na ngwanrọ a. Ekele maka ndị a kpọtụrụ aha na ya onye zitere m ihe mgbochi ahụhụ ma nyere enyemaka ndị ọzọ.

Nzube na mmejuputa iwu nke ugwo anya ugwo site n'aka ochichi US ma ya mere na ngalaba oha obodo. Otú ọ dị, onye edemede na NIST ga-amasị akwụmụgwọ ọ bụrụ na a na-eji usoro a na akwụkwọ ma ọ bụ akụkụ nke ha.