Ny fanantenana baiko Linux / Unix

Ny andrasana dia programa iray miresaka fandaharam-pampianarana hafa mifanaraka amin'ny script. Taorian'ilay script, Fantatra ny zavatra azo andrasana amin'ny programa iray ary inona no tokony ho valiny. Ny fiteny iray azo ampiasaina dia manome rafi-panarahamaso ny sampana fandrindrana sy rafitra avo lenta mba hitantanana ny diniky. Ankoatr'izany, ny mpampiasa dia afaka mifehy sy mivantana mivantana raha ilaina, aorian'izay dia hiverina hifehy amin'ny script.

Expectk dia fifangaroan'ny Fiainana sy ny Tk. Mitandrina toy ny fanirian'i Expect sy Tk izany. Ny fitrandrahana dia azo ampiasaina mivantana ao amin'ny C na C ++ tsy misy Tcl.

Ny anaran'ny "Fiainana" dia avy amin'ny hevitra hoe handefa / hanandrana sequences populated by uucp, kermit sy programa hafa fanaraha-maso modem. Na izany aza, tsy toy ny uucp, ny Expect dia voafaritra mba hahafahana manatanteraka ny baikon'ny mpampiasa amin'ny programa sy ny tanjona ao an-tsainao. Ny fanantenana dia afaka hiresaka amin'ny programa maro amin'ny fotoana iray ihany.

Inona no mety hitranga?

Ohatra, ireto misy zavatra sasantsasany izay antenaina hanatanterahana baiko:

Maro ny antony mahatonga ny akorany tsy afaka manatanteraka ireo asa ireo. Azo atao amin'ny Expect ny rehetra.

Amin'ny ankapobeny, ny Expect dia ilaina amin'ny fanatontosana programa izay mitaky fifandraisana eo amin'ny programa sy ny mpampiasa. Ny zava-drehetra ilaina dia ny fanovozan-kevitra dia azo karazana programa. Ny fitrandrahana dia mety hamerina ny fanaraha-maso amin'ny mpampiasa ihany koa ary tsy hampiato ny programa fehezina. Toy izany koa, ny mpampiasa dia afaka mamerina ny fanaraha-maso amin'ny script amin'ny fotoana rehetra.

Fampiasana

Ny andrasana dia mamaky cmdfile ho an'ny lisitry ny baiko omena. Ny fitrangan-javatra dia mety hiankina tanteraka amin'ny rafitra manohana ny #! fampahafantarana amin'ny alalan'ny fanamarihana ny script ho azo atao ary mametraka ny andalana voalohany ao amin'ny script:

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

Mazava ho azy fa ny lalana dia tsy maintsy mamaritra mazava tsara hoe aiza no misy ny Expect. / usr / local / bin dia ohatra iray fotsiny.

Ny sainan'ny -c dia manolotra baiko homena alohan'ny sasantsasany ao amin'ny script. Ny baiko dia tokony asiana fanamarihana mba hisorohana ny fiviliana amin'ny kapila. Ity safidy ity dia mety ampiasaina imbetsaka. Misy didy maromaro azo atao miaraka amin'ny singa -c amin'ny fanasarahana azy ireo amin'ny semicolons. Ny commands dia novonoina araka ny filahan'izy ireo. Rehefa mampiasa Expectk io safidy io dia voalaza fa-command.

Ny saina -d dia ahafahana manao famoaham-pahaizana hafa, izay manambara amin'ny atsy ho atsy ny asa atao tahaka ny manantena sy mifandray. Io sainana io dia misy fiantraikany mitovy amin'ny "exp_internal 1" eo am-piantombohan'ny Skype Expect, plus ny version of Expect dia vita printy.

Ny saina -D dia ahafahana misafidy interactiver. Toetra iray tsy manan-tsahala tokony hanaraka. Ny debugger dia hifehezana alohan'ny fizotry ny manaraka Tcl raha toa ka tsy zero ilay sanda, na raha misy tsindry ny ^ C na tsipika iray tapaka, na misy baiko misimisy hafa mety ho hita ao amin'ny script. Rehefa mampiasa Expectk io safidy io dia voalaza fa - Debug.

Ny sainan'ny -f dia manolotra rakitra ahafahana mamaky ny baiko. Ny sainam-pirenena dia tsy mety raha ilaina ihany ny fampiasana ny #! fanamarihana, mba hahafahana manolotra hevitra hafa amin'ny baikon'ny baiko. Rehefa mampiasa Expectk dia voalaza fa -file ity safidy ity.

Matetika, ny rakitra baiko dia vakiana ho fahatsiarovana ary novonoina manontolo. Indraindray dia mahafinaritra ny mamaky ny rakitra iray tsikelikely. Mba hampiasana ireo antontan-taratasy tsy azo ampiasaina, dia ampiasao ny sainam -b. Rehefa mampiasa Expectk io safidy io dia voalaza fa -buffer.

Raha ampidirina ho anaran-drakitra ny tsipelina "-", dia vakio fa alefa ny mari-pamantarana. Ampiasao "./-" ny famakiana amin'ny rakitra iray antsoina hoe "-".

Ny sainan'ny -i dia mitarika fanantenana amin'ny fifampiraharahana miaraka amin'ny baiko fa tsy mamaky azy avy amin'ny rakitra iray. Ny fandrotsahana dia tapaka amin'ny baiko mivoaka na amin'ny EOF. Ny saina -i dia heverina raha tsy misy rakitra baiko na -c ampiasaina. Rehefa mampiasa Expectk io safidy io dia voalaza fa -interactive.

- Azo ampiasaina hamaranana ny faran'ny safidy. Tena ilaina izany raha te handefa fehezanteny iray mitovy amin'ny script ianao raha tsy misy dikantenin'ny Expect. Azo ampiasaina amin'ny #! tsipika mba hisorohana ny fandikana amin'ny fomba fijery toy ny Expect. Ohatra, ity manaraka ity dia handao ny fanoherana tany am-piandohana, anisan'izany ny anaran'ny script ao amin'ny variable argv .

#! / usr / local / bin / miandry -

Mariho fa ny fivoarana mahazatra (3) sy famonoana (2) mahazatra dia tsy maintsy asiana fanamarihana rehefa mampiditra adihevitra amin'ny #! tsipika.

Ny rakitra $ exp_library / expected.rc dia natonta ho azy raha misy, raha tsy mampiasa ny -N ny saina. (Raha mampiasa Expectk io safidy io dia voatondro ho -NORC.) Aorian'izay, ny rakitra ~ / .expect.rc dia aterina ho azy, raha tsy ampiasaina ny sain -n. Raha voafaritra ny faritra voafaritra DOTDIR ho an'ny tontolo iainana, dia raisina ho toy ny directory izy io ary ny reader .expect.rc dia vakina avy eo. Rehefa mampiasa Expectk io safidy io dia voalaza fa -norc. Ity fitaovana ity dia tsy aorian'ny fanatanterahana ny sain-ka.

-v antony Manantena ny hanonta ny nomeraon-drakitra sy ny fivoahana azy. Ny sainana mifanaraka amin'ny Expectk, izay mampiasa anaran'ny sainam-pirenena, dia -version.

Ireo args fanampiny dia natsangana ho lisitra iray ary voatahiry ao amin'ny variable argv sy. argc dia manomboka amin'ny halavan'ny argv.

Ny argv0 dia voafaritra ho ny anaran'ny script na binary raha tsy misy script ampiasaina. Ohatra, ny endritsoratra manaraka dia mamoaka ny anaran'ny script ary ny hevitra telo voalohany:

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

didy

Andrasana dia ampiasain'ny Language Command Tool. Ny Tcl dia manome ny fitantanana ny fifandraisana (raha, ny, fialonana), ny fanombanana ny fanehoana sy ny endri-javatra maro hafa toy ny famaritana sy ny fomba famaritana. Ny baiko ampiasaina eto fa tsy voamarina (mametraka, raha, exec) dia ny didy Tcl. Ny fiandrasana dia manohana baiko fanampiny. Raha tsy misy fanamarihana manokana, dia mamerina baikon-drakitra ny baiko.

Ny baiko dia soratana amin'ny alfabeta mba hahafahan'izy ireo haingana. Na dia izany aza, ireo mpampiasa vaovao dia mety ho mora kokoa ny manomboka amin'ny famakiana ny filazalazana momba ny fitaratra, ny mandefa, ny fiandrasana, ary ny fifanakalozan-kevitra, ao amin'io lamina io.

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

manidy ny fifandraisana amin'ny dingana ankehitriny. Ny fandaharam-pifanakalozana ankapobeny dia hahita ny EOF amin'ny alàlan'ny stdin sy ny fivoahana azy; Matetika dia ampy tsara ny famonoana ny dingana . Ny sainan'ny -i dia manambara ny fizotry ny fifidiana mifanaraka amin'ilay anarana hoe spawn_id.

Ny andrasana sy ny fifanakalozan-kevitra dia hamantatra rehefa mivoaka ny dingana ankehitriny ary manakaiky ny farany, fa raha mamono ny dingana amin'ny, miteny, "exec kill $ pid", mila miantso mazava tsara ianao .

Ny sainan'ny -onexec dia mamaritra raha toa ka mihidy amin'ny idim-pitsaboana vaovao na tsia ny doka . Raha te hamoaka tsipika fanosorana ianao dia ampiasao ny sandan'ny sanda 0. Ny tsy manan-danja ny singa tsy manan-danja dia manery ny fitomboka amin'ny fikolokoloana vaovao.

Ny sainam-panala dia manidy ilay andevo mifandray amin'ny id id. Rehefa mikatona ny fifandraisana, dia mikatona ho azy ny andevo raha mbola misokatra.

Na tsy mifarana na tsy mazava tsara ny fifandraisana, tokony hiantso ianao amin'ny famaranana ny famaritana ny efamira kernel mifanaraka aminy. Ny baikoana akaiky dia tsy mitaky fiandrasana satria tsy misy antoka fa ny fanakatonana ny fifandraisana dia hiteraka azy.

debug [[-Ny] 0 | 1]

dia manara-maso ny debuggera Tcl izay ahafahanao mamakivaky fanambarana ary mametraka sakana.

Raha tsy misy adihevitra, dia averina ny 1 raha tsy mandeha ny debugger, raha tsy izany dia averina ny 0.

Miaraka amin'ny adihevitra 1, dia natomboka ilay debugger. Miaraka amin'ny adi-hevitra 0, dia tapaka ilay debugger. Raha misy soso-kevitra 1 manaraka ny saina -now, dia atomboka avy hatrany ilay debugger. Raha tsy izany dia manomboka amin'ny fanambarana manaraka Tcl ny debugger.

Ny baiko debug dia tsy manova ny fandrika. Ampitahao izany amin'ny fanombohana ny fanantenana amin'ny saina -D.

Ny baiko fisintonana dia manafoana ny dingana miala amin'ny terminal . Mitohy eo amin'ny sehatra izy io. Io dingana io dia nomena ny vondrona misy azy. Ny default I / O dia alefa mankany / dev / null .

Ity sombin-tsoratra manaraka ity dia mampiasa ny fisintonana hanohizana ny famakiana ilay script ao ambadika.

raha {{fork]! = 0} fivoahana ny fifandraisana. . .

Ity script ity dia mamaky ny tenimiafina ary manokatra programa iray isaky ny ora mitaky ny tenimiafina isaky ny mihazakazaka. Ny script dia mametraka ny tenimiafina mba hahafahanao mametraka azy indray mandeha.

send_user "password? \" expect_user -re "(. *) \ n" for {} 1 {} {raha {[fork]! = 0} {tory 3600, tohohy} tohizo ny sakana priv_prog manantena ny tenimiafina: alefaso "$ expect_out ( 1, string) \ r ". . . Fivoahana }

Ny tombony azo ampiasaina amin'ny fametahana ny sifotra asynchronous feature (&) dia ny Manantena fa afaka mamonjy ireo parlemantan'ny terminal alohan'ny famafàna ary raha vao ampiharina amin'ny teboka vaovao izy ireo. Miaraka amin'ny & Andrasana dia tsy manam-potoana hamakiana ireo mari-pamantarana ny terminal satria efa voafafa amin'ny terminal ny terminal ankehitriny.

fivoahana [-apits] [toetoetrany]

Antony miandrasa ny miala na miomana amin'ny fanaovana izany.

Ny sainan'ny -onexit dia mahatonga ny soso-kevitra manaraka ho ampiasaina amin'ny mpihazakazaka misaraka. Raha tsy misy adihevitra, dia averina ny mpaninjara amin'izao fotoana izao.

Ny sainan'ny -noexit dia mitarika ny andrasana hiomanana amin'ny fivoahana fa tsy manakana ny famerenana ny fifehezana amin'ny rafitra miasa. Ny mpandrindra ny fivoahana an-tserasera dia mihazakazaka ary ny mpandraharaha manokana ao amin'ny Expect. Tsy misy famoahana Fanantenana tokony hovonoina. Tena ilaina izany raha toa ka mihazakazaka amin'ny Tcl extension hafa. Ny mpandika teny amin'izao fotoana izao (ary ny fikandrana voalohany raha ao amin'ny tontolo Tk) dia mijanona mba hahafahana manadio ny Tcl hafa. Raha voantso indray ny fivoahana an'i Expect (na izany dia mety hitranga izany), dia tsy miverina ny mpanaraka.

Rehefa tapitra ny fotoana, dia mihidy ny fifandraisana rehetra amin'ny fisoratana. Ny fikojakojana dia ho hita amin'ny endriny amin'ny EOF. Ny fivoahana dia tsy misy hetsika hafa ankoatry ny fomba fanao mahazatra _exit (2). Noho izany dia mety mitohy mihazakazaka ny fizotran'ny taratra tsy manara-maso ny EOF. (Misy karazana fepetra maromaro manan-danja amin'ny famaritana, ohatra, inona no mampiavaka ny fizotran'ny tsipika, fa ireo dia rafitra miankina amin'ny rafitra, araka ny fisoratana anarana eo ambany (3).) Ireo lozam-pamokarana izay mbola mitohy dia hovain'ny init.

Ny status (na 0 raha tsy voalaza) dia averina ho fialana amin'ny Expect . Ny fivoahana dia voafetra tanteraka rehefa tapitra ny faran'ny script.

exp_continue [-continue_timer]
Ny command exp_continue dia ahafahana manantena ny hanohy hanatanteraka azy fa tsy hiverina araka ny tokony ho izy. Amin'ny alàlan'ny exp_continue default, dia mamerina ny timer ny Timeout. Ny saina -continue_timer dia manakana ny famerenana ny fanavaozana tsy tapaka. (Jereo ny fanantenana fanampiny.)

exp_internal [-f ny rakitra]
dia mitarika baiko fanampiny mandefa fampidiran- dresaka anatiny ao amin'ny Expect to stderr raha tsy misy ny sanda. This output is disabled if value is 0. The information diagnostic includes each character received, and every attempt to match the current output against the patterns.

Raha ampidirina ilay rakitra an-tsoratra, dia alefa any amin'io dossier io daholo ny ordinatera sy ny famoahana azy (na inona na inona lanjany ). Ny rakitra fanontana rehetra alohan'ny famaranana dia mihidy.

Ny sainan'ny -info dia mahatonga exp_internal hamerenana ny famaritana ny hevitra farany momba ny tsy-info.

Exp_open [args] [-i spawn_id]
dia mamerina mari-pamantarana misy ny rakitra Tcl izay mifanandrify amin'ny id navoaka voalohany. Ny solonanarana fidirana dia azo ampiasaina toy ny hoe nosokafana ny baiko misokatra an'i Tcl. (Tsy tokony hampiasaina intsony ny ID. Tsy tokony hovonoina ianao.

Ny sainan'ny -leaveopen dia mamela ny famandrihana an-tsokosoko misokatra amin'ny alàlan'ny baiko Expect. Tokony hiandry ny famoahana ny ID.

Exp_pid [-i spawn_id]
dia mamerina ny process id mifanaraka amin'ny dingana efa misy amin'izao fotoana izao. Raha ampiasaina ny saina -i , dia averina ny pid raha mifanaraka amin'ny an'ny id.

exp_send
dia aliasan'ny fandefasana .

exp_send_error
dia aliasan'ny send_error .

exp_send_log
dia aliasan'ny send_log .

exp_send_tty
dia aliasan'ny send_tty .

exp_send_user
dia aliasan'ny send_user .

exp_version [[-exit] version]
dia ilaina amin'ny fanamafisana fa ny script dia mifanaraka amin'ny dikan-teny Expect ankehitriny.

Raha tsy misy adihevitra, dia averina ny versione Expect ankehitriny. Ity dikan-teny ity dia mety ho hita ao anaty scripto. Raha fantatrao fa tsy mampiasa karazana dikan-teny vao haingana ianao, dia azonao atao ny mamaritra ny dikan-teny teo aloha.

Ny dikan-teny dia misy isa telo misaraka amin'ny teboka. Voalohany no isa be indrindra. Ireo scripty nosoratana ho an'ny versione Expect amin'ny isa hafa dia tsy azo antoka fa tsy miasa. exp_version dia mamerina fahadisoana raha toa ka tsy mifanandrify ny isa lehibe.

Faharoa dia ny isa kely. Ireo scripty nosoratana ho an'ny dikan-pejy misy lanjany lehibe kokoa noho ny dikan-dikan-teny amin'izao fotoana izao dia mety miankina amin'ny singa vaovao ary mety tsy mihazakazaka. Ny exp_version dia mamerina fahadisoana raha mifanandrify ny isa midadasika, fa ny isa ambany kosa dia mihoatra noho ny an'ny Expect .

Ny fahatelo dia isa izay tsy mandray anjara amin'ny fampitahana amin'ny version. Na izany aza, mihamitombo izy io rehefa miova ny fizarana rindrambaiko Expect amin'ny fomba rehetra, toy ny fanampim-panazavana fanampiny na fanatsarana. Vetivety amin'ny 0 isaky ny dikan-dikan-teny vaovao.

Miaraka amin'ny sainan'ny " exit" , Manantena ny famoahana ny hadisoana iray ary mivoaka raha toa ka tsy misy daty ilay version.

manantena [[-opts] pat1 body1] ... [-opts] patn [bodyn]
miandry mandra-pahatongan'ny iray amin'ireo lamina ireo dia mifanohitra amin'ny fizotry ny fizotran'ny famolavolana, ny fotoana voatondro voafaritra, na ny end of file dia hita. Raha mbola tsy misy ny vatany farany, dia mety ho foana izany.

Ny endriky ny fanantenana expected_before vao haingana dia ampiasaina alohan'ny modely hafa. Ny endrik'ilay baiko mitaky ny fanantenana farany indrindra dia ampiasaina amin'ny fomba hafa.

Raha toa ny fehezan-teny ho an'ny fanambarana antenaina dia mitaky mihoatra ny iray ny andalana, ny hevitra rehetra dia mety ho "tafihitsoka" ho iray mba tsy hisakanana ny tsipika tsirairay amin'ny tsipika. Amin'ity tranga tokana ity, dia hisolo toerana ny mahazatra Tcl, na dia eo aza ny fiatraikany.

Raha lamaody ny teny fanalahidy, ny vatana mifanaraka aminy dia atao any amin'ny faran'ny daty. Raha lamaody ny fe-potoam-pitenenana , dia ny vatana mifanaraka amin'izany dia atao amin'ny faharetana. Raha tsy ampiasaina ny tenimiafin'ny timeout, dia misy ny fepetra tsy misy dikany ateraky ny fisian'ny Timeout. Ny vanim-potoana isaky ny vanim-potoana isaky ny 10 segondra nefa mety hapetraka, ohatra amin'ny 30, amin'ny baiko hoe "setout 30". Ny fotoana tsy voafetra dia azo lazaina amin'ny sanda -1. Raha lamina ny default ny teny fototra, dia ny vatana iray mifanaraka amin'ny fotoana na ny end of file.

Raha mifanaraka ny lamina, dia ny vatana mifanaraka amin'izany no atao. manantena fa hiverina ny valin'ny vatana (na ny kofehy foana raha toa ka tsy misy lamina). Raha toa ka mifanandrify ny endriny samihafa, ny iray miseho aloha dia ampiasaina hifidy vatana.

Isaky ny tonga ny vokatra vaovao dia ampitahaina amin'ny lamina tsirairay ao amin'ny baiko notanisainy. Azonao atao, ohatra, ny mitsipaka ny tsy fisian'ny lalao amin'ny alalan'ny famolavolana zavatra iray azo antoka, toy ny bitsika iray. Amin'ny toe-javatra tsy misy fampandrenesana, tsy maintsy mampiasa fotoana fohy ianao (toy ny hoe raha mifandray amin'ny tanana ianao).

Ny endriky ny endriky ny fomba telo. Amin'ny alàlan'ny fanamarinana, ny mari-pamantarana dia voatondro toy ny baikon'ny baikon'ny Tcl. (Ny fomba toy izany dia mitovy amin'ny fomba amam -panaon'ny C-shell izay matetika antsoina hoe "glob"). Ny sari-de la dia mety ampiasaina mba hiarovana ireo laminasa izay mety hiandrasana ny fanantenan'ny saina amin'ny fanaovana izany. Ny lamina rehetra manomboka amin'ny "-" dia tokony ho voaro amin'izany. (Ny sompirana manomboka amin'ny "-" dia natokana ho an'ny safidy amin'ny ho avy.)

Ohatra, ny sombina manaraka dia mitaky ny fisian'ny logiciel mahomby. (Mariho fa ny fanalan-jaza dia heverina ho fomba fanao voafaritra hafa ao amin'ny script.)

manantena {mavesatra {mametraka laharana \ n; exp_continue} tsy nahomby ny fandefasana ny "tenimiafina tsy manadino" ny fandefasana ny faharetan'ny fifandraisana}

Ilaina ny latsabato amin'ny môtera fahefatra satria misy toerana iray, izay manavaka ny lamina avy amin'ilay asa. Ireo lamina misy ny hetsika mitovy (toy ny faha-3 sy faha-4) dia mitaky ny hetsika indray ny hetsika. Izany dia mety hialana amin'ny fampiasana modely regexp (jereo eto ambany). Ny fampahalalana bebe kokoa momba ny famolavolana modely ny globe dia azo jerena ao amin'ny boky fampianarana Tcl.

Ny modely ho an'ny Regexp dia manaraka ny fehezanteny voalazan'ny tcl's regexp (fohy ho an'ny "regular expression"). Ny modely regexp dia ampidirina amin'ny sainam-pirinty. Ny ohatra teo aloha dia azo averina ampiasaina amin'ny alàlan'ny regexp tahaka ny:

manantena {mavesatra {mametraka laharana \ n; exp_continue} -re "tsy nahitana ny | password tsy mety |" fandefasana ny faharetan'ny fifandraisana}

Ny karazana modely roa dia "tsy voalamina". Midika izany fa tsy voatery mifanaraka amin'ny tadiny manontolo ny lamina, fa afaka manomboka sy mamarana ny lalao na aiza na aiza ao amin'ny tadiny (raha toa ka mifanindry ny zavatra rehetra). Ampiasao ny ... mba hampifanaraka ny fiantombohan'ny andian-tsoratra, ary $ mba hifanaraka amin'ny farany. Mariho fa raha tsy miandry ny faran'ny baoritra iray ianao, dia mora foana ny valim-bavaka eo anelanelan'ilay baoritra rehefa mipoitra avy amin'ny dingana vita. Na dia mamokatra vokatra tsara aza izany, dia mety hijery tsy mahazatra ny vokatra. Noho izany, ny fampiasana ny $ dia ampirisihina raha azonao atao ny mamaritra ny tarehimarika amin'ny faran'ny baoritra iray.

Mariho fa amin'ny tari-dàlana maro, ny ^ sy $ dia mifanaraka amin'ny fiandohana sy ny faran'ny andalana tsirairay. Na izany aza, satria tsy mitombina ny laharam-pahamehana, ireo litera ireo dia mifanaraka amin'ny fiandohana sy ny fiafaran'ireo angona (mifanohitra amin'ny tsipika) amin'izao fotoana izao amin'ny fanantenana buffer mifanandrify. (Jereo koa ny fanamarihana etsy ambany ao amin'ny "tsy firaharahian'ny rafitra.")

Ny sainan'ny -ex dia mahatonga ny lamina ho mifanentana amin'ny endritsoratra "marina". Tsy misy fandikana ny *, ^, sns. (Na dia tsy maintsy tazonina aza ny fivoriambe Tcl mahazatra). Ny mombamomba azy ireo dia tsy voatsinjara foana.

Ny saina -nocase dia miteraka tarehimarika lehibe amin'ny vokatra azo ampitahaina toy ny hoe ambany tarehimarika kely. Ny lamina dia tsy misy fiantraikany.

Raha mamaky output ianao, mihoatra ny 2000 ny bytes dia afaka manery ny bytes taloha "ho hadino". Azo ovaina amin'ny alalan'ny match_max izany . (Mariho fa mety hampihenana ny soatoavina karazan'entana lehibe ny sanda lehibe.) Raha feno full_buffer ny paty , dia aseho ilay vatana mifanaraka aminy raha mifanandrify ny bytes_max bytes ary tsy misy lamina hafa mifanandrify. Na ampiasaina ny teny fototra full_buffer na tsia, ireo litera adinoina dia nosoratana ho an'ny expectee_out (buffer).

Raha toa ny patiss ny teny fototra null , ary ny zero dia avela (amin'ny baiko remove_nulls ), ny vatana mifanaraka amin'izany dia atao rehefa misy mitovy ASCII 0. Tsy azo atao ny mifanandrify amin'ny 0 bytes amin'ny alalan'ny globes na ny modely regexp.

Rehefa mifandrindra lamina (na eof na full_buffer), dia ny alimandrin'ny expected_out (buffer) no avahana ny vokatra mifanandrify amin'ny alim- borona . Ny adiresy subreging regexp dia alaina ao amin'ny 9 isaky ny variables expect_out (1, string) amin'ny expected_out (9, string) . Raha ampiasaina alohan'ny lamina ny sain-indices, ny endis-nomboka sy ny end of ending (amin'ny endrika iray mahazatra ho azy ) amin'ny 10 strings dia voatahiry ao amin'ny fari- piadin'ny expect_out (X, starts ) ary ny isa_ (X, farany) izay X dia tarehimarika, mifanandrify amin'ny toerana ambany ao amin'ny buffer. Ny 0 dia manondro ny fametahana izay mifanaraka amin'ny lamina manontolo ary dia entina ho an'ny lozisialy globe ary koa ny modely regexp. Ohatra, raha misy famokarana namoaka output of "abcdefgh \ n", ny valiny dia:

manantena "cd"

dia toy ny hoe novonoina ireto fanambarana manaraka ireto:

set wait expect_out (0, string) cd set expect_out (buffer) abcd

ary "efgh \ n" sisa tavela ao amin'ny buffer output. Raha toa ny fizotry ny process dia namoaka ny vokatra "abbbcabkkkka \ n", vokatry ny:

- "b (b *). * (k +)"

dia toy ny hoe novonoina ireto fanambarana manaraka ireto:

(0, fehiny) 1 set expect_out (0, tara) 10 set expect_out (0, string) bbbcabkkkk voatendry expect_out (1, fiandohana) 2 sety expected_out (1, farany) 3 set expect_out (1, string) bb setrasaina expected_out (2, fanombohana) 10 sety expected_out (2, farany) 10 set expect_out (2, string) k set expect_out (buffer) abbbcabkkkk

ary "a \ n" sisa tavela ao amin'ny buffer output. Ny lamina "*" (sy -re ". *") Dia handrotsaka ny buffer output rehefa tsy mamaky intsony ny vokatra.

Amin'ny ankapobeny, ny vokatra mifanandrify dia nesorina tao anaty fonosana ao amin'ny Expect. Azo alaina izany amin'ny alàlan'ny fanolorana lamina miaraka amin'ny saina -notransfer . Ity sainam-pirenena ity dia tena ilaina tokoa amin'ny fanandramana (ary azo fafana amin'ny "-not" raha ilaina).

Ny idam-pamokarana mifandraika amin'ny vokatra mifanaraka (na eof na full_buffer) dia voatahiry ao antenaina (spawn_id) .

Ny sainam- potoana -timeout dia mahatonga ny baiko handrasana amin'izao fotoana izao hampiasana ny lanjany manaraka ho toy ny Timeout fa tsy mampiasa ny soatoavin'ny toetr'andro.

Matetika, dia mifanohitra amin'ny vokatra azo avy amin'ny dingana misy ankehitriny ny lamina, na izany aza, ny sanda -i dia manambara fa ny vokatra avy amin'ilay anarana antsoina hoe spawn_id lisitra dia mifanohitra amin'ny endrika manaraka (manaraka ny -i ). Ny lisitry ny spawn_id dia tokony ho lisitry ny spawn_ids na lisitry ny spawn_ids toy izany.

Ohatra, ity ohatra manaraka ity dia miandry ny hoe "mifandray" amin'ny dingana misy ankehitriny, na "be atao", "tsy nahomby" na "adiresy tsy manadino" avy amin'ny spawn_id atao hoe proc2.

Manantona {-i $ proc2 be atao {mamafa asa \ n; exp_continue} -re "tsy nahitana ny | password tsy mety |" fandefasana ny faharetan'ny fifandraisana}

Ny sandan'ny lanjan'ny globe any_spawn_id dia azo ampiasaina mba hifanaraka amin'ny lamina any amin'ny spawn_ids izay voatonona miaraka amin'ny olon-kafa -i saina amin'ny fanombohana amin'izao fotoana izao. Ny spawn_id avy amin'ny sain -i tsy misy lamina mifandray (izany dia arahin'ny iray hafa -i ) avy eo dia omena amin'ny lamina hafa ao amin'ilay baiko fanombohana mitovy amin'ny any_spawn_id.

Ny sainan'ny -i dia mety hanonona ny fari-dalany maneran-tany, ka ny vakin-tsoratra dia vakiana amin'ny lisitr'ireo rakitra. Ny fivoarana dia averina isaky ny miova. Izany dia manome fomba hanovàna ny loharanom-pifandraisana raha mbola eo am-panafarana ilay baiko. Ireo sampana mpikamabana dia nanome izany antsoina hoe "indirect" izany.

Ny fihetsika toy ny fiviliana ary mitohy ny antony mahatonga ny rafitra fanaraha-maso (izany hoe, for , proc ) mba hitondrantena amin'ny fomba mahazatra. Ny command exp_continue dia ahafahana manantena ny hanohy hanatanteraka azy fa tsy hiverina araka ny tokony ho izy.

Izany dia ilaina amin'ny fisorohana ny tadidy mazava na averimberina manantena fanambarana. Ity ohatra manaraka ity dia ampahany amin'ny sombintsombiny hanapahana rlogin. Ny exp_continue dia misoroka ny fanoratanao fanambarana fanantenana faharoa ( hikatsaka indray ny bitsika indray) raha toa ka mitaky ny tenimiafina ny rlogin.

"{sty-echo send_user" password (ho an'ny mpampiasa $) amin'ny $ host: "expect_user -re" (. *) \ n "send_user" \ n "alefaso" $ expected_out (1, string) \ r "stty Echo exp_continue} tsy diso {send_user "password tsy mety na kaonty \ n" exit} Timeout {send_user "fifandraisana amin'ny $ host timed out \ n" exit} eof {send_user \ "fifandraisana amin'ny host tsy nahomby: $ expect_out (buffer)" exit} re $ prompt}

Ohatra, ity sombin-tsoratra manaraka ity dia mety hanampy ny mpampiasa iray hitarika fifandraisana iray izay efa tanteraka tanteraka. Amin'io tranga io, ny terminal dia ampidirina amin'ny fomba mahitsy. Raha mampiasa "+" ny mpampiasa, dia mihena ny fari-dalany. Raha tsindriana ny "p", dia alefa any amin'ny dingana iray ny fiverenana maromaro, angamba mba hialana amin'ny fomba hafa, ary ny "i" dia ahafahan'ilay mpampiasa hifaneraserana amin'ilay dingana, ary manala ny fanaraha-maso amin'ny script. Amin'ny tranga tsirairay, ny exp_continue dia ahafahan'ny olona manantena ny hanohy ny endriny mifanaraka amin'ny fanatanterahana ny hetsika amin'izao fotoana izao.

stty raw -echo expect_after {-i $ user_spawn_id "p" {send "\ r \ r \ r"; exp_continue} "+" {incr foo; exp_continue} "i" {fifampizarana; exp_continue} "fialana" exit}

Amin'ny alàlan'ny default, exp_continue dia mamerina ny timer ny Timeout. Tsy manomboka ny timer, raha ny exp_continue dia antsoina amin'ny saina -continue_timer .

expect_after [expect_args]
Asa dia mitovy amin'ny antenaina_ aloha raha tsy hoe raha mifanaraka ny lamin'ny roa andrasana sy ny andrasana amin'ny manaraka, dia ampiasaina ny fomba ananana . Jereo ny baiko expected_before fanazavana bebe kokoa.

expect_background [expect_args]
Mitovy ny fanoherana toy ny manantena , na dia miverina avy hatrany aza izy. Ny fakan-tsary dia nosedraina rehefa tonga ny fandraisana vaovao. Ny faharetan'ny paikady sy ny fahamendrehana dia tsy misy dikany ny fanantenana_background ary tsy atao tsinontsinona . Raha tsy izany, ny baikon'ny expect_background dia mampiasa expect_forefore and expected_after patterns tahaka ny antenaina .

Rehefa manombana ny hetsiky ny valin'ny_background, dia voasakana ny fanodinana ny haavo fototra amin'ny id. Ny fakana ambaratongam-pamokarana dia tsy nibahana rehefa vita ny asa. Na dia voasakana aza ny fanamafisana ny asa, dia azo atao ny manantena ny (antena) amin'ny andiany id.

Tsy azo atao ny manantena zavatra iray raha mbola mihemotra ny fanantenana_background . The expected_background ho an'ny idioma manokana dia nofafàna tamin'ny fanambarana ny fanantenana vaovao iray izay misy ilay ID tsy mitongilana. Ny fanambarana ny fanantenana_background tsy misy lamina dia manaisotra ilay adiresy nomena avy amin'ny fahafahana mifanaraka amin'ny lamina ao an-dalany.

expect_before [expect_args]
Mitovy ny fanoherana toy ny manantena , na dia miverina avy hatrany aza izy. Ny paikadin'ny fampisehoana dia avy amin'ny fanantenana indrindra vao haingana miaraka amin'ny doka mitovy ihany no ampidirina amin'ny manaraka rehetra andrasana baiko. Raha mifanaraka ny lamina, dia raisina toy ny hoe voalaza ao amin'ny fanombohana ny baiko, ary ny vatana mifandraika dia novonoina tao anatin'ny toe-javatra misy ny fanantenana . Raha toa ka mifanandrify ireo lamin'asa roa miandry miandry sy manantena azy , dia ampiasaina ny lamandy expect_before .

Raha tsy voalaza ny lamina, dia tsy voamarina amin'ny endrika hafa ny idiom-pitaovana.

Raha tsy misy ny sainan'ny -i , dia manandrana ny fampiasana ny lamandy expected_before mifanohitra amin'ny laha - tsipelina izay voafaritra amin'ny fotoana namonoana ilay baiko expected_before (fa tsy rehefa mifanaraka ny lamina).

Ny sainam-pirenena dia miteraka expect_ aloha ny hamerenana ny fepetra amin'izao fotoana izao momba izay karazana itony. Matetika izy io dia mitatitra momba ny iditra ankehitriny. Azonao atao ny manome torohay momba ny idiran-tsoratra fakan-tsarimihetsika momba izany id. Ohatra

.........

Amin'ny ankapobeny dia misy ny mari-pamantarana manokana azo omena. Ny sainam-panodikodinam-pandeha dia mampiato ireo tsimok'aretina mivantana izay tsy misy afa-tsy ny fanondroana indraindray.

Raha tokony asiana mari-pamantarana fanondroana, ny sainam-pirenena "-all" dia miteraka "-info" hitaterana ireo saka rehetra.

Ny famoahana ny saina -info dia azo averina ho toy ny fanoherana ny fanantenana_ aloha.

wait_tty [expect_args]
dia toy ny andrasana fa mamaky tarehin-tsoratra avy / dev / tty (izany hoe fanesorana ny mpampiasa). Matetika, ny famakiana dia atao amin'ny fomba mahandro. Noho izany, ny andalana dia tsy maintsy mifarana amin'ny fiverenana mba hanantenahana azy ireo. Azo ovaina amin'ny alalan'ny stty izany (jereo ny baiko stty etsy ambany).

wait_user [expect_args]
dia toy ny manantena fa mamaky ireo tarehin-tsoratra avy amin'ny stdin (izany hoe fanesorana ny mpampiasa). Matetika, ny famakiana dia atao amin'ny fomba mahandro. Noho izany, ny andalana dia tsy maintsy mifarana amin'ny fiverenana mba hanantenahana azy ireo. Azo ovaina amin'ny alalan'ny stty izany (jereo ny baiko stty etsy ambany).

fork
manangana dingana vaovao. Ny dingana vaovao dia dika mitovy amin'ny dingana efa misy ankehitriny. Amin'ny fahombiazana, ny gripa dia miverina 0 mankany amin'ny dingana vaovao (ankizy) ary mamerina ny ID ny fizotry ny ankizy amin'ny fizotry ny ray aman-dreniny. Amin'ny tsy fahombiazana (tsy azo ihodivirana noho ny tsy fahampian'ny loharano, ohatra, ny toerana famandrihana, ny fahatsiarovana), ny gnou dia miverina -1 amin'ny fizotry ny ray aman-dreny, ary tsy misy ny fizotry ny ankizy.

Ny fikojakojana fivoahana dia mivoaka amin'ny baiko mivoaka , toy ny dingana voalohany. Azo atao ny manoratra any amin'ny rakitra ao amin'ny rakitra. Raha toa ka tsy manaisotra ny fanesorana ianao na miditra amin'ny ankamaroan'ny dingana, dia mety hikorontan-tsaina ny valiny.

Ny fampiharana pty sasany dia mety ho marikitry ny mpamaky sy mpanoratra maro, na dia fotoana fohy monja aza. Noho izany dia azo antoka kokoa ny misoroka alohan'ny fizotran'ny tsy fahampian-tsakafo.

interact [string1 body1] ... [stringn [bodyn]]
dia manome ny fanaraha-maso ny dingana misy amin'izao fotoana izao amin'ny mpampiasa, mba halefa any amin'ny dingana misy ankehitriny ny tsindry fohy, ary ny stdout sy stderr amin'ny dingana ankehitriny dia averina.

Ny paosin'ny vatana dia azo faritana ho toy ny fandresen-dahatra, ka ny vatany dia novonoina rehefa tapitra ny kofehy mifanentana. (Raha alahatra ny adiresy dia tsy alefa amin'ny dingana misy amin'izao fotoana izao.) Ny baikon'ny mpandika teny dia raisina, raha tsy hita ny vatany farany.

Raha toa ny fehezan-teny momba ny fanambarana iray manontolo dia mila fehezanteny maromaro, ny hevitra rehetra dia mety ho "tafihitsoka" ao anaty iray mba tsy hisakanana ny tsipika tsirairay amin'ny tsipika. Amin'ity tranga tokana ity, dia hisolo toerana ny mahazatra Tcl, na dia eo aza ny fiatraikany.

Ohatra, ity baiko manaraka manaraka ity dia mifandray amin'ireo endriky ny singa string manaraka. (Ny saina -reset dia mamerina manova ny endrik-tsoratry ny terminal.) Rehefa ajanona ny ^ A, ny mpampiasa dia mahita hoe " asiana fehezanteny A ianao" ary alefa ny ^ A. Raha $ pressed, ny mpampiasa dia mahita ilay daty. Rehefa ajanona ny ^ C dia andrasana ny fivoahana. Raha niditra "foo" ny mpampiasa dia mahita "bar". Rehefa mihodina ny ~~, ny interpreter Expect dia miara-miasa.

mametraka CTRLZ \ 032 interact {-reset $ CTRLZ {exec kill -STOP [pid]} \ 001 {send_user "" "" "" \ n "; "~ 001"} $ {send_user "Ny daty dia [format clock] []. 003 exit foo {send_user" bar "} ~~}

Ao amin'ny paosin-tsoratry ny vatana, dia mifamatotra amin'ny laharana asongadin'izy ireo ny kofehy. Ny tsipika izay mifanandrify amin'ny ampahany dia tsy alefa any amin'ny dingana misy amin'izao fotoana izao ho fanantenana ny ho avy. Raha toa ka miditra ny endri-tsoratra ka tsy misy intsony ny lalao, dia ny ampahany amin'ilay tadidy ihany no alefa mankany amin'ny dingana izay tsy mety manomboka lalao hafa. Noho izany, ny tady izay misy tsipika misy ny ampahany sasany dia mety mifanaraka amin'ny manaraka, raha toa ka tsy mahomby ny tadin-doha tany am-piandohana.

Amin'ny alàlan'ny fanamarinana, ny mifanaraka amin'ny tsipika dia tsy misy karatra anaty . (Mifanohitra amin'izany, ny fanombohana ny baiko dia mampiasa ny endrika globe amin'ny endriny.) Ny sainan'ny -ex dia mety ampiasaina mba hiarovana ireo lamina izay mety mifanentana amin'ny sainan'ny fifandraisana amin'ny fanaovana izany. Ny lamina rehetra manomboka amin'ny "-" dia tokony ho voaro amin'izany. (Ny sompirana manomboka amin'ny "-" dia natokana ho an'ny safidy amin'ny ho avy.)

Ny sainam- pirenen-tsika dia manery ny kofehy ho lazaina ho endrika reflexa. Amin'ity tranga ity, ireo singa mifandraika dia voatahiry ao amin'ny interact_out miovaova mitovy amin'ny fomba manantena ny fivarotana ny vokatra ao amin'ny variable expect_out . Ny sainam-pirenena ihany koa dia manohana azy.

Ny modely eof dia manolotra hetsika iray atao amin'ny end-tory. Ny lamin'ny efamira samihafa dia mety hanaraka ihany koa ny sainam- pirenen-drakitra raha toa ka mifanandrify raha toa ka voamarika ny eof iray rehefa manoratra ny vokatra. Ny hetsika " euf default" dia ny "fiverenana", ka ny fifampiresahana dia miverina fotsiny amin'ny EOF.

Ny isam-pahefana dia mampiditra fe-potoana (isa-segondra) ary asa atao rehefa tsy misy litera novakiana nandritra ny fotoana iray. Ny lamin'ny Timeout dia ampiharina amin'ny dingana faramparany indrindra. Tsy misy ny isa voafaritra. Ny fe-potoana manokana "Timeout" (ampiasaina amin'ny baiko fanantenana ) dia tsy misy fiantraikany amin'io fotoana io.

Ohatra, ity fanambarana manaraka ity dia azo ampiasaina ho an'ireo mpampiasa autologout izay tsy nanoratra na inona na inona nandritra ny adiny iray nefa mbola mivezivezy matetika matetika:

interact -input $ user_spawn_id oraout 3600 miverina -toput \ $ spawn_id

Raha toa ny lamina dia ny tenimiafana null , ary ny zero dia avela (amin'ny baiko remove_nulls ), ny vatana mifanaraka amin'izany dia atao rehefa misy mitovy ASCII 0. Tsy azo atao ny mifanandrify amin'ny 0 bytes amin'ny alalan'ny globes na ny modely regexp.

Manoloana ny lamina misy ny sainam-pirenena dia mahatonga ny fifandraisana interact_out (spawn_id) hampiasaina amin'ny spawn_id izay mifanandrify amin'ny lamina (na eof).

Ny fihetsika toy ny fiviliana ary mitohy ny antony mahatonga ny rafitra fanaraha-maso (izany hoe, for , proc ) mba hitondrantena amin'ny fomba mahazatra. Na izany aza, ny fifamindram-potoana dia mamela ny fifandraisana mba hiverina amin'ny mpamaky azy, raha toa ny fifandraisana inter_return ka mahatonga ny fiverenana amin'ny antsony . Ohatra, raha toa ny "proc foo" antsoina hoe interact, izay namoaka ny asa atao inter_return , dia hiverina ny proco foo . (Midika izany fa raha mifampiantso ny mpandika teny interactively amin'ny famerenana dia hamela ny fifampiresahana hanohizana, raha ny inter_return dia hahatonga ny fifampiresahana hiverina amin'ny mpanjifany.)

Mandritra ny fifanakalozan-kevitra dia ampiasaina ny fomba ampiasaina mba ahafahan'ny karazan-tarehy rehetra atao amin'ny dingana misy ankehitriny. Raha toa ka tsy mihetsika ny fanamafisana ny fanamafisana ny asa dia tsy hijanona izany raha toa ka mandefa fanairana izy (raha alahatra ^ Z). Mba hanombohana azy dia alefaso fanindroany (toy ny "kill -CONT"). Raha tena tianao ny handefa SIGSTOP amin'ny dingana toy izany (amin'ny ^ Z), eritrereto ny fandokoana csh aloha ary avy eo mitantana ny programa. Etsy ankilany, raha te-handefa SIGSTOP ianao hamantatra ny tenany, dia midika hoe mpandika teny (angamba amin'ny fampiasana karazana fandosirana), ary tsindrio ny ^ Z.

Ny paositry ny vatana dia azo ampiasaina ho tsindrim-peo mba tsy hiditra amin'ny mpandika teny sy hampihatra ny baikony amin'ny interactively. Ny endriky ny terminal teo aloha dia ampiasaina raha toa ka tapaka ny vatana amin'ny paosiny iray.

Ho an'ny hafainganam-pandehanana, ny asa atao amin'ny alàlan'ny fakana ambaratongam-paoma. Ny sainan'ny -reset dia mamerina ny endriky ny fomba niatrehana ny fifanakalozan-dresaka (tsy miova, fomba mahandro). Mariho fa mety ho very ny endri-tsoratra rehefa alamino ny famolavolana azy (endri-javatra mampalahelo ny mpanamory ny terminal amin'ny rafitra sasany). Ny antony tokana hampiasana -reset dia raha ny hetsika ataonao dia miankina amin'ny fihazakazahana amin'ny fomba mahandro.

Ny sainan'ny -echo dia mandefa karazana mifanaraka amin'ilay modely manaraka aty amin'ny dingana izay nahatonga azy ireo ho isaky ny vakina tsirairay. Mety ilaina izany raha mila mahita ny feedback avy amin'ny modely nadika ho azy ny mpampiasa.

Raha latsa-paka ny lamina iray nefa tsy mifanandrify amin'ny endriny, dia alefa any amin'ny dingana efa navoaka ireo tarehintsoratra. Raha toa ka mampihetsi-po azy ireo ilay dindon-drivotra, dia hahita roa ny tarehiny. -Eho dia mety amin'ny toe-javatra izay tsy ahafahan'ilay mpampiasa tsy hamita ilay lamina. Ohatra, ity isa manaraka ity dia avy amin'ny rftp, ny script recaptive-ftp, izay ampiasain'ny mpampiasa hiditra ~ g, ~ p, na ~ l, mba haka, hametraka, na lisitra ny lahatahiry misy ankehitriny. Ireo dia lavitra lavitra ny baiko ftp mahazatra, fa ny mpampiasa dia tsy azo atao ny manendry ~ manaraka zavatra hafa, afa-tsy amin'ny fahadisoana, amin'ny tranga toy izany, dia mety ho tsininy fotsiny ny vokany.

interact {-echo ~ g {getcurdirectory 1} -echo ~ l {getcurdirectory 0} -echo ~ p {putcurdirectory}}

Ny saina -nobuffer dia mandefa karazana mifanaraka amin'ilay modely manaraka eo amin'ny dingana ho an'ny vokatra rehefa vakina ny marika.

Ilaina izany rehefa maniry ny hamela programa iray hiverina ny modely. Azonao atao, ohatra, ireto manaraka ireto mba hanaraha-maso ny toerana misy ny olona iray (modem Hayes-style). Isaky ny "atd" no jerena, dia manitsy ny sisa amin'ny tsipika ny script.

{log in} {interact -nobuffer -re "(. *) \ r" mametraka ny $ log "[famantaranandro famantaram-potoana]: mifampizara $

Amin'ny fampifandraisana dia tsy ampiasaina ny fampiasana ny log_user teo aloha. Amin'ny ankapobeny, ny fifampiraharahana dia hanery ny vokatra ho voarakitra (nalefa any amin'ny vokatra serivisy) satria heverina fa tsy maniry ny hifanerasera amin'ny endrika jamba ny mpisera.

Ny sainan'ny -o dia miteraka paikan'ny fanalahidy manaraka izay tokony hampiharina amin'ny vokatra misy amin'izao fotoana izao. Mety ilaina izany, ohatra, rehefa mifampiraharaha amin'ireo mpampiantrano izay mandefa tarehimarika tsy fantatra amin'ny tranonkala telnet.

Matetika, ny fifanakalozan-kevitra dia manantena fa ny mpanoratra dia tokony hanoratra stdin ary mamaky ny stdout amin'ny Process Expect itself. Ny sainan'ny -u (ho an'ny "mpampiasa") dia manova ny fomba fijerin'ny mpisera ho toy ny dingan- drivotra notononin'ny soso-kevitra (izay tsy maintsy misy idirana).

Izany dia ahafahana mifandray roa tsy misy ifandraisany miaraka amin'ny fehezanteny mazava. Mba hanampiana ny debugging, Andraso foana ny diagnostika amin'ny stderr (na stdout ho an'ny fampidiram-boky sasany sy ny famoahana debugging). Noho izany antony izany, ny baiko mpandika teny dia hamaky amina interactively avy amin'ny stdin.

Ohatra, ity sehatra manaraka ity dia mamorona kaonty fisoratana anarana. Avy eo dia miantso ny mpampiasa (tsy haseho), ary farany dia mampifandray ireo roa ireo. Mazava ho azy, mety misy solon'anasa azo ovaina ny fisoratana anarana. Ny akorany iray, ohatra, dia mamela ny mpampiasa miasa nefa tsy manome ny kaonty sy ny tenimiafina.

spawn login set login $ spawn_id spawn tip modem # dial back to user # connect user to login interact -u $ login

Raha handefa rindranasa amin'ny sehatr'asa maromaro ianao dia tanisao ny lisitry ny lisitry ny mpitsidika tsirairay izay aseho amin'ny alalan'ny sainam-peo. Ny soso-kevitra ho an'ny vondrona famoahana vokatra dia mety hamaritra ny lisitry ny mpilalao idirana mialoha amin'ny sainam-pirinty. (Na ny input- and- output dia mety mamoaka lisitra mitovy amin'ny hoe -i saina amin'ny baiko fanombohana, afa-tsy ny hoe misy_spawn_id dia tsy misy dikany amin'ny fifanakalozan-kevitra .) Ireo sainam-peo sy tsipika (na lamina) ny sainan'ny fidirana. Raha toa ka tsy misy ny input-in , dia midika hoe "-Input $ user_spawn_id -output". (Tahaka izany ihany koa, miaraka amin'ny lamina tsy misy -Input .) Raha misy-ny isa voatondro, dia manosika $ user_spawn_id. Raha ampidirina faharoa, dia manapaka $ spawn_id izany. Azo ampiasaina ny sainam- panondro fanampiny.

Ny dingana roa nampidirina dia midika fa ny sanda nomena azy dia $ spawn_id ary $ user_spawn_id (amin'ny ampahany). Raha toa ka miseho amin'ny sainam- peo tsy misy ivelany ny sainam-pirenena, dia nesorina ireo tarehin-tsoratra tamin'izany.

Ny sainan'ny -i dia manolotra fanoloana ny spawn_id amin'izao fotoana izao raha tsy misy fampiasana sainam- baovao hafa na fampiratiana . Ny sainan'ny -i dia midika hoe -a saina.

Azo atao ny manova ireo fomba fiasa mifandraika amin'ny fampiasana ny endri-tsoratra indirect. (Hita ao amin'ny fizarana momba ny fanombohana ny fehin-kintsana indraindray.) Azo atao ny manondro tsimok'aretina indraindray amin'ny -i, -u, -input, na ny sainam-peo.

interpreter [args]
dia mahatonga ny mpampiasa hifampiditra am-piheverana ny didy Expect sy Tcl. Ny vokatry ny baiko tsirairay dia vita printy.

Ny fihetsika toy ny fiviliana ary mitohy ny antony mahatonga ny rafitra fanaraha-maso (izany hoe, for , proc ) mba hitondrantena amin'ny fomba mahazatra. Na izany aza, ny fiverenana dia mahatonga ny mpandika teny hiverina amin'ny mpamaky azy, raha ny inter_return no mahatonga ny mpandika teny hamerina ny fiverenany amin'ny antsony . Ohatra, raha "proc foo" antsoina hoe mpandika teny izay namoaka ny asa atao inter_return , dia hiverina ny proco foo . Ny baiko hafa dia mahatonga ny mpandika teny hanohy ny bitsika amin'ny didy vaovao.

Matetika, io safidy io dia ahitana karazana roa. Ny isa voalohany dia manoritsoritra ny halalin'ny fanombanana (oh .: impiry Tcl_Eval no nantsoina). Ny endriny faharoa dia ny famantarana ny tantara Tcl. Azo atao ny mamaritra ny bitsika amin'ny famaritana fepetra antsoina hoe "prompt1" izay ny volavolan-dalany dia lasa bitsika manaraka. Raha toa ka misy teny fanokafana, fanamarihana, fantsona, na fonosana, ny fanehoan-kevitra faharoa (amin'ny alàlan'ny "+>") dia navoaka tamin'ny alimanakana. Ny bitsika faharoa dia azo atao amin'ny famaritana fomba fanao antsoina hoe "prompt2".

Nandritra ny mpandika teny , ampiasaina ny fomba amidy, na dia nampiasa môtô môtô aza aza ny mpihaino azy.

Raha mikatona ny stdin, dia hiverina ny mpandika teny raha tsy ampiasaina ny sifa -eof, raha toa ka misy ny adiresy manaraka.

log_file [args] [[-a] rakitra]
Raha nomena ny anaran-drakitra, ny log_file dia handrakitra tsoratadidy ny fivoriana (manomboka amin'io fotoana io) ao anaty rakitra. Ny log_file dia hanakana ny firaketana raha tsy misy adihevitra omena. Ny rakitra log teo aloha dia mihidy.

Raha tokony hoe anaran-tsehatra, dia mety misy famantarana famantarana ny anaran'ny tcl dia ampiasaina amin'ny sain -open na -leaveopen . Toy izany koa ny baikon'ny anjomara . (Jereo ny fitrandrahana hafa.)

Ny sainam- pirenen-tsika dia navoaka mba ho voarakitra izay nosakanan'ny baiko log_user .

Amin'ny alàlan'ny default, ny baiko log_file dia mametraka ny rakitra efa tranainy fa tsy ny fanodikodinana azy, noho ny fahafahanao manova ny fisoratana anarana ary mandritra ny fotoana fohy mandritra ny fivoriana iray. Raha hanongana ny rakitra, ampiasao ny sainam- pirindrina .

Ny saina flag -info dia mitarika log_file hamerenana ny famaritana ny hevitra farany momba ny tsy-info.

log_user -info | 0 | 1
Raha adihevitra dia alefa ny stdout (ary ny logfile raha misokatra). Ny logging to stdout dia kilemaina amin'ny baiko "log_user 0" ary averina indray amin'ny "log_user 1". Tsy miova ny fidirana ao amin'ny logfile.

Ny sainan'ny -info dia mahatonga ny log_user hamerina ny fanoritsoritana ny fanaporofoan-kevitra farany momba ny tsy-info.

match_max [-d] [-i spawn_id] [habeny]
dia mamaritra ny habetsaky ny buffer (amin'ny bytes) ampiasaina anaty avy amin'ny andrasana . Raha tsy misy ny anton-kevitra lehibe, dia averina ny habeny ankehitriny.

Miaraka amin'ny sainan'ny -d , ny habeny dia voafaritra. (Ny ambaratonga voalohany dia 2000.) Amin'ity saina -i ity , dia voafetra ny habeny ho an'ny idon-drakitra anarana, raha tsy izany dia omena ny fizotran'ny ankehitriny.

Overlay [- # spawn_id] [- # spawn_id] [...] fandaharana [args]
dia manatanteraka "programa args" amin'ny toeran'ny programa Expect ankehitriny, izay tapitra. Ny fametrahana teboka somary marefo dia manery biriky iray eo anoloan'ny baikon'ny anarana toy ny hoe shell misy azy. Voafidy avokoa ny spawn_ids afa-tsy ireo izay voalaza ho hevitra. Ireo dia voasoritra eo amin'ny anaran'ny mpamaritra an-tsoratra.

Ireo Spawn_ids dia sarintany handefasana marika famantarana amin'ny fandaharana vaovao handova. Ohatra, ity andalana manaraka ity dia mamela ny sambo ary mamela azy ho voafehy amin'ny dingana ankehitriny - milaza, tompon-tsakafo.

Overlay -0 $ spawn_id -1 $ spawn_id -2 $ spawn_id chess

Tsara kokoa noho ny "interact -u" izy io, kanefa manolotra fahafahana hanao fifampiraharahana miaraka aminy izy io satria efa tsy voafehy intsony ny fizotra .

Mariho fa tsy misy terminal mifehy. Noho izany, raha toa ka manaisotra na manamboatra ny dikan-tsoratra ny programa, ny programa izay manara-maso ny asa (shells, login, sns) dia tsy mandeha araka ny tokony ho izy.

parity [-d] [-i spawn_id] [lanjany]
dia manamarina raha tokony ho voatazona na halaim-baraka ny fizotry ny fizotran'ny dingana. Raha toa ka zero ny hasina , dia nesorina ny paikady, raha tsy izany dia tsy voasambotra izy. Raha tsy misy adihevitra mavesa-danja, dia averina ny lanjany ankehitriny.

Miaraka amin'ny sainam -D , dia napetraka ny sandan'ny parité defo. (Ny default voalohany dia 1, izany hoe, tsy miala ny parité.) Ao amin'ny saina -i , ny marika parity dia voafetra ho ilay anarana nomena anarana, raha tsy izany dia omena ny fizotran'ny ankehitriny.

remove-nulls [-d] [-i spawn_id] [lanjany]
dia mamaritra hoe tsy misy na inona na inona ny zana- tsokajy na nesorina teo am- pelantanan'ny pensilihazo mialoha ny fampifanampiana na fametrahana ny vary miandry expect_out na interact_out . Raha sanda 1, dia nesorina ny nulls. Raha toa ka 0, dia tsy nesorina ny nulls. Raha tsy misy adihevitra mavesa-danja, dia averina ny lanjany ankehitriny.

Miaraka amin'ny saina -d , ny sanda miavaka dia napetraka. (Ny default voalohany dia 1, izany hoe, nesorina ny nulls.) Miaraka amin'ny saina -i , ny sanda dia mametraka ny anarana nomena anarana, raha tsy izany dia omena ny dingana ankehitriny.

Na nesorina na tsia ny nulls, Expect dia hanoratra aty amin'ny lahatahiry sy stdout.

alefaso [-flags] string
Alefaso ny string amin'ny dingana misy ankehitriny. Ohatra, ny baiko

alefaso "hello world \ r"

mandefa ireo karazana, helloworld amin'ny dingana misy amin'izao fotoana izao. (Tcl dia ahitana baiko iray printf- like (antsoina hoe format ) izay afaka manorina strings sarotra.)

Ny tarehin-tsoratra dia alefa avy hatrany raha toa ka tsy mamaky ireo tarehin-tsoratra ireo ny programa miaraka amin'ny fidirana an-tsisintany mandra-piverina. Ny karazana fiverenana dia nomena anarana "\ r".

Ny - sainam-piaramanidina dia manosika ny soso-kevitra manaraka tokony ho adika fa tsy sainam-pirenena. Ny endri-tsoratra rehetra dia azo alaina avy amin'ny "-" raha toa ka toa toy ny sainam-pirenena ny izy na tsia. Izany dia manome rafitra azo itokisana hanondro ny tadin-tsivalana tsy misy dikany raha toa ka tsy misintona ny sainam-pirenena tahaka ny sainam-pirenena. (Ny sompirana manomboka amin'ny "-" dia natokana ho an'ny safidy amin'ny ho avy.)

Ny sainan'ny -i dia manambara fa ilay baoritra dia alefa any amin'ny anaran'ny spawn_id. Raha toa ny spawn_id dia user_spawn_id , ary ny endri-tsoratra dia amin'ny fomba mivaingana , ireo raki-daza ao amin'ny string dia nadika ho rindran-dikan-dikan-tsipelina mba ho toy ny hoe ny terminal dia tao amin'ny fomba mahandro. Ny sainam-pirenenana dia mamafa io fandikan-teny io.

Ny sainam-pirinty dia mandefa tarehintsoratra tsy mitongilana (0 bytes). Raha alahatra, dia alefa iray ny null. Ny isa iray dia mety hanaraka ny -null mba hampisehoana ny habetsaky ny nulls .

Ny sainam-pirenenan- tsaka dia niteraka fahasimbana. Izany dia mahatsapa raha toa ny idiom-pitaovana dia manondro ny fitaovana tty misokatra amin'ny alalàn'ny "fitrandrahana -open". Raha efa nahavita dingana toy ny tendrony ianao, dia tokony hampiasa ny fivoriam-panentanana mba hamoronana fialana.

Ny sainam-pirenen'ireo hery navoaka dia nalefa "tsimoramora", noho izany dia araho ny toe-javatra mahazatra izay misy ny ordinatera mamoaka buffer fanondro izay natao ho an'ny olona iray izay tsy hivoaka intsony na oviana na oviana ilay buffer . Ity output ity dia mifehy ny sandan'ny ny "send_slow" miovaova izay mamaritra lisitry ny singa roa. Ny singa voalohany dia singa iray izay mamaritra ny isan'ny bytes handefasana atomika. Ny singa faharoa dia misy tarehimarika marina izay mamaritra ny isa segondra izay tokony hanasarahana ny atomika. Ohatra, "mametraka send_slow {10 .001}" dia manery ny "send -s" mba handefa sora-matevina miaraka amin'ny 1 miliske-tapitrisa eo anelanelan'ireo tarehintsoratra tsirairay nalefa.

Ny hery -h ny herin'ny sainam-pirenenana halefa (somary) tahaka ny fanondroan'ny olona tena marina. Ny fahatarana tahaka ny olombelona dia miseho eo amin'ireo tarehintsoratra. (Ny algorithm dia mifototra amin'ny fizarana Weibull, miaraka amin'ny fanovàna mifanaraka amin'io fampiharana manokana io.) Ity famoahana ity dia mifehy ny sandan'ny "send_human" miovaova izay mamaritra lisitry ny singa dimy. Ny singa anankiroa voalohany dia isam-potoana mampifandray ny tarehintsoratra ao anatin'ny segondra. Ny voalohany dia ampiasaina amin'ny alalana. Ny faharoa dia ampiasaina amin'ny endriny amin'ny teny, mba hanamboarana ny fiatoana manjavozavo izay mitranga indraindray amin'ny fiovana toy izany. Ny mari-pahaizana fahatelo dia fari-pahaizana miovaova toerana .1 dia tena miovaova, 1 dia azo alaina araka ny antonony, ary 10 dia tsy azo lavina. Ny faratampony dia 0 ny tsy hita. Ireo roa farafahakeliny farany dia ny fotoana iray farafahakeliny sy farafahakeliny indrindra. Ny farafahakeliny sy ny fara-tampony dia ampiasaina farany ary ny "clip" amin'ny fotoana farany. Ny salan'isa faratampony dia mety tsy mitovy amin'ny salan'isa nomena raha toa ka ny soatoavina ambany indrindra sy ny avoakan'ny avo indrindra.

Ohatra, ity baiko manaraka ity dia mamoaka sariitatra haingana sy tsy miovaova:

Alefaso send_human {.1 .3 1 .05 2} mandefa -h "Izaho no noana, andao isika hiara-misakafo."

raha toa ka mety kokoa izany manaraka izany aorian'ny fangirifiriana:

Alefaso send_human {.4 .4 .5 0.5 100} alefaso -h "alina fialantsasatra fety"!

Mariho fa ny fahadisoana dia tsy simba, na dia afaka manangana toe-javatra fanitsiana diso aza ianao amin'ny fametrahana fahadisoana sy fanitsiana amin'ny adihevitra nalefa.

Ny sainam-pirinty maniraka olona tsy manan-kialofana, noho ny fandefasana fialantsasatra, noho ny fanerena ny vokatra mora sy ny fomba amam-panao amin'ny olombelona, ​​dia tsy manan-tsahala. Izay ilay voatondro farany ihany no hampiasaina. Ankoatra izany, tsy misy tsipika misy tsipika azo atao amin'ny sainan'ny fandefasana tarehintsoratra na tsipika .

Tsara ny mialoha ny handefasana ny sendika voalohany amin'ny dingana iray. Manantena ny hiandry ny dingana hanombohana, raha sendra tsy afaka. Amin'ny ankapobeny, raha vao vita ny fandefasana voalohany dia vao mainka mety hampidi-doza ny fampahalalam-baovao. Amin'ny toe-javatra izay tsy ahafahan'ny programa interaktif no manolotra ny bitsika voalohany, afaka alohanao ny mandefa ahemotra toy ny:

# Mba hisorohana ny fanomezana toro-hevitra amin'ny haino aman-jery, # ity rafitra ity dia tsy manandrana ny tenimiafina ivelany. # Andraso 5 segondra ho an'ny fandefasana hamita tanteraka ny telnet very.secure.gov matory 5 alefaso ny tenimiafina \ r

exp_send dia aliasana nalefa. Raha mampiasa Expectk na karazana hafa antenaina amin'ny tontolo iainana Tk ianao dia alefan'ny Tk amin'ny tanjona hafa. exp_send dia omena ny fifanarahana eo amin'ny tontolo iainana. Misy aliases toy izany dia omena ireo hafa mandefa Senda hafa.

Send_error [-flags] string
dia toy ny mandefa , afa-tsy ny mandefa ny output ho stderr fa tsy ny dingana ankehitriny.

send_log [-] string
dia toy ny mandefa , afa-tsy ny mandefa ny string ho an'ny rakitra ao amin'ny rakitra (jereo ny log_file .) Tsy voamarina ny fanoherana raha tsy misy rakitra misokatra.

send_tty [-flags] string
dia toy ny mandefa , afa-tsy ny alefa alefa any / dev / tty fa tsy ny dingana ankehitriny.

send_user [-flags] string
dia toy ny mandefa , afa-tsy ny mandefa ny output ho stdout fa tsy ny dingana ankehitriny.

dingana segondra
dia mahatonga ny script ho matory mandritra ny segondra nomena. Mety ho laharana nomerika ny segondra. Fakana an-keriny (sy ny Tk fisehoan-javatra raha mampiasa Expectk ianao) dia arovana raha miandry matory.

Fandaharam-potoana [args] programa [args]
dia mamorona drafitra vaovao mitarika "programa args". Ny stdin, stdout ary stderr dia mifandray amin'ny Expect, mba hahafahan'izy ireo vakiana sy voasoratra avy amin'ny baiko Expect hafa. Ny fifandraisana dia tapaka eo akaikiny na raha toa ka manidy ny iray amin'ireo mari-pamantarana ny rakitra.

Rehefa manomboka amin'ny alàlan'ny famokarana ny dingana iray, dia apetraka amin'ny descriptor iray mifandraika amin'io dingana io ny spawn_id . Ny dingana arahin'ny spawn_id dia heverina fa ny " dingana ankehitriny ". Afaka mamaky na manoratra ny spawn_id, raha ny fijerena ny fifehezana ny asa.

User_spawn_id dia fari-dàlana maneran-tany misy ny descriptor izay manondro ny mpampiasa. Ohatra, raha ny spawn_id no mametraka io sanda io, dia manantena ny fitondrantena tahaka ny expect_user .

I error_spawn_id dia fari-pefy maneran-tany misy ny descriptor izay manondro ny fahadisoana natokana. Ohatra, rehefa mametraka an'ity mari-pamantarana ity ny spawn_id , alefaso toy ny send_error ny fitondran-tena .

tty_spawn_id dia fari-dàlana maneran-tany misy ny descriptor izay manondro / dev / tty. Raha tsy misy / dev / tty (toy ny ao amin'ny cron, at, na ny batch script), dia tsy voafaritra ny tty_spawn_id . Mety hosedraina toy izao izany:

Raha {{info vars tty_spawn_id}} {{{/ dev / tty} misy} hafa {# / dev / tty tsy misy # angamba amin'ny cron, paikady, na amin'ny script}

Ny spawn dia mamerina ny ID process ID. Raha tsy misy dingana mahomby , dia averina ny 0. Ny toetoetran'ny spawn_out (andevo, anarana) dia mametraka ny anaran'ilay fitaovana andevo pty.

Amin'ny alàlan'ny fanamarihan-teny dia manambatra ny anarana sy ny fanoherana ny famafana. Ny sainan'ny -noecho dia tsy mitsahatra ny manao izany.

Ny saina -console dia mahatonga ny output console ho alefa mankany amin'ny dingana vita . Tsy manohana izany amin'ny rafitra rehetra izany.

Ao anatiny dia mampiasa pty ny fitrandrahana, manomboka toy ny tty an'ny mpampiasa. Ity dia manomboka misimisy kokoa ka ny fomba fanovana rehetra dia "sane" (araka ny stty (1)). Raha voafaritra ny stty_init variable, dia adika amin'ny fomba ofisialin'ny stty ho toy ny fanovana hafa. Ohatra, "mametraka stty_init raw" dia mety hiteraka korontana hafa hanomboka amin'ny fomba maody. -Nottycopy dia mandingana ny fanombohana mifototra amin'ny tty mpampiasa. -Nottyinit dia manaparitaka ny fanasokajiana " fahamendrehana ".

Amin'ny ankapobeny dia tsy dia manam-potoana firy ny famindrana. Raha mahatsikaritra ianao fa maka fotoana be dia be, dia mety hihaona amin'ny ptys izy ireo. Fitsapana maromaro no mihazakazaka eo amin'ny pétys mba tsy hisian'ny fifandimbiasana amin'ny dingana efa misy. (Ireo dia maka 10 segondra isaky ny tebiteby.) Mandeha Mitandrema amin'ny safidy -d dia asehony raha toa ka manjo ny teboka maro any amin'ny fanjakana manaitra. Raha tsy azonao atao ny mamono ireo dingana izay mifamatotra amin'ireto akanjonao ireto, dia mety hiverina hiverina indray ianao.

Raha toa ka tsy mahomby ny programa satria tsy mahomby ny exec (2) raha toa ka tsy misy ny programa dia tsy maintsy averina amin'ny hafatra manaraka ny baiko diso na ny baiko fanombohana raha toa ka nihazakazaka ny programa ary namoaka ny hafatra diso momba ny output. Ity fihetsika ity dia vokatra voajanahary amin'ny fampiharana ny famokarana . Ao anatin'izany dia miteraka fantsom-panafody, ary avy eo dia tsy misy fomba ahafahana mifandray amin'ny fomba fitrandrahana efa niandoha ny fizotry ny hazakazaka, raha tsy amin'ny alalan'ny fifandraisana amin'ny spawn_id.

Ny sainan'ny -open dia miteraka adihevitra manaraka ho toy ny tsipika famantarana ny Tcl (izany hoe, averina amin'ny alàlan'ny misokatra .) Mety ho ampiasaina toy ny hoe dingana efa nipoitra ilay idilana. (Tsy tokony hampiasaina intsony ilay mpamaritra ny solosaina.) Izany dia mamela ny fitaovana sy ny rakitra ary ny pipelines ho azy, raha toa ka tsy misy pty. 0 dia naverina mba hanondroana fa tsy misy dingana mifandraika amin'izany . Rehefa mihidy ny fifandraisana amin'ny fizotran'ny tsipika dia toy izany koa ny famantarana ny rakitra Tcl. Ny sainan'ny -leaveopen dia mitovy amin'ny -open afa-tsy hoe -leaveopen dia mahatonga ny mpizara amin'ny raki-peo havaozina misokatra na dia aorian'ny famaranana ny id id.

Ny sainam-pirinty dia miteraka fihenanam-po saingy tsy misy dingana mahomby . 0 dia naverina mba hanondroana fa tsy misy dingana mifandraika amin'izany . Toy ny mahazatra ny Spawn_id.

Ny variable spawn_out (andevo, fd) dia mametraka ny mari-pamantarana misy ny pty. Azonao atao ny manidy ny "close-slave".

Ny sainan'ny -ignore dia manonona tsindry tsy hiraharaha amin'ny dingana efa navoaka . Raha tsy izany, ny signal dia mahazo ny fitondran-tena tsy mety. Ny mari-pamantarana dia antsoina toy ny ao amin'ny baikon'ny fandrika , afa-tsy ny fahitana famantarana tsirairay.

strace ambaratonga
dia miteraka fanarahana ireo fanambarana hosoratana alohan'ny hamonoana azy. (Ny baikon'ny trace Tcl dia manova ny fari-piainana.) Dia mampiseho ny halaviran'ny antso an-tariby. Ohatra, ity baiko manaraka ity dia miandrasa amin'ny fijerena ny isa voalohany amin'ny antso, saingy tsy misy izany.

manantena -c "script4" script.exp

Ny sainan'ny -info dia miteraka famerenana hamerenana ny famaritana ny hevitra farany momba ny tsy-info.

stty args
dia manova ny endriky ny endriky ny fomba fanao amin'ny baiko etsy ivelany.

Amin'ny alàlan'ny alalana, dia alefaso ny terminal controlling. Ny takelaka hafa dia azo jerena amin'ny fandefasana "Ny fangatahana ny sata dia mamerina azy noho ny baiko. Raha tsy misy fangatahana atao ary aseho ny terminal controlling, dia averina amin'ny endrika izay mety aoriana ampiasaina amin'ny baiko.

Ohatra, ny fanadihadiana mena na kookied dia mametraka ny terminal ho modely mena. Ny fanamarihana -raha na vita tsiro dia mametraka ny terminal amin'ny fomba mahandro. Ny valim-pitenenana dia mameno ary -echo dia mametraka ny terminal ho rakitra sy ny noecho mode.

Ity ohatra manaraka ity dia maneho ny fomba tsy ahafahana manilika ny fihetsika. Azo ampiasaina amin'ny alàlan'ny script-automatique izany mba tsy hisakanana ny tenimiafina ao anatiny. (Jereo ny fifanakalozan-kevitra bebe kokoa momba izany eo ambany FANAZAVANA FANAMPINY etsy ambany.)

stty -echo send_user "Password:" expect_user -re "(. *) \ n" mametraka tenimiafina $ expect_out (1, string) stty echo

system args
dia manome args ho (1) ho fampidirana, toy ny hoe aseho ho baiko avy amin'ny terminal. Ny andrasana dia miandry mandra-pahatapitry ny kiraro. Ny sata mifototra avy amin'ny sh dia mitovy amin'ny fomba izay fomba fitantanana ny fiverenany.

Mifanohitra amin'ny fanatanterahana izay mamerina ny stdin sy stdout ao amin'ny script, dia tsy manova ny fanodinana ( rafitra hafa) ny rafitra (ankoatra izay voalaza amin'ny endritsoratra). Noho izany, azo atao ny mampiasa programa izay tokony hiresaka mivantana / dev / tty. Noho izany antony izany, ny vokatr'ilay rafitra dia tsy voarakitra ao amin'ny log.

timestamp [args]
dia mamerina fe-potoana. Tsy misy adihevitra, ny isa segondra hatramin'ny niverenan'ny epoch.

Ny sanda -format dia manolotra tsipika iray izay naverina, saingy miaraka amin'ny fanoloana natao araka ny fitsipika POSIX ho an'ny strftime. Ohatra,% a dia nosoloina anaran-tsokosoko (alatsinainy, Sat). Ny hafa dia:

% ny anaran'ny herinandro farafaharatsara% A anarana feno herinandro anarana% b amin'ny anarana volana aloa% B feno volana feno% c datam-potoana toy izao: Wed Oct 6 11:45:56 1993% d andro volana (01-31% ora (00-23)% ora aho (01-12)% j andro (001-366)% m volana (01-12)% M minitra (00-59)% p am na pm% S faharoa (00-61) % u andro (1-7, Alatsinainy isaky ny herinandro)% U herinandro (00-53, Alahady voalohany no andro voalohany isan-kerinandro iray)% V herinandro (01-53, style ISO 8601)% w day (0- 6)% W herinandro (00-53, alatsinainy voalohany dia andro voalohany isan-kerinandro iray)% x daty ora toy izao: Wed Oct 6 1993% X ora toy izao: 23:59:59% y taona (00-99) % Y taona toy ny: 1993% Z ora (na tsia raha tsy voafaritra)

Other% specifications are undefined. Ny endrika hafa dia halefa amin'ny tsy voafatotra. Ny fokonolona C irery ihany no tohana.

Ny sainan'ny sandwich dia mampiditra segondra maromaro nanomboka tamin'ny fotoana nampiasaina ho loharano handefasana format. Raha tsy izany dia ampiasaina ny fotoana misy ankehitriny.

Ny sainan'ny -gmt dia manery ny famoahana timestamp hampiasa ny fizaran-taona GMT . Tsy misy saina no ampiasaina.

fandidiana [[baiko]]
dia mahatonga ny baiko omena omena amin'ny fahazoan-dàlana ho avy amin'ny iray amin'ireo famantarana. Ny baiko dia novonoina teo amin'ny sehatra manerantany. Raha tsy misy ny baiko, dia averina ilay hetsika. Raha ny baiko no ilay SIG_IGN string, dia tsy raharahiana ireo mari-pamantarana. Raha ny baiko no ilay SIG_DFL string, dia miteraka ny mari-pamantarana ny rafitra. Ny famantarana dia famantarana na lisitry ny famantarana. Ny mari-pamantarana dia azo asiana tarehimarika na marika famantarana toy ny famantarana (3). Azo atao ny omena ny fanoratana "SIG".

Raha tsy misy adihevitra (na ny laharam-pitenenana -number), dia mamerina ny laharam-pahefan'ny baikon'ny trap izay amidy ankehitriny.

Ny sainan'ny -code dia mampiasa ny code returncode an'ny baiko, na inona na inona baiko Tcl dia hiverina raha vao nanomboka ny baiko.

Ny sainan'ny -interp dia mahatonga ny baiko hotsaraina amin'ny fampiasana ilay mpandika teny mavitrika amin'ny fotoana nanombohana ny baiko fa tsy tamin'ny fotoana nilazana ilay fandrika.

Ny sainam-pirenen'ny anarana dia mitarika ny baikon'ny fandrika mba hamerenana ny anaran'ny fepetra famandrihana misy azy ankehitriny.

Ny sainan'ny -max dia mahatonga ny baikon'ny fandrika hamerina ny laharan'ny laharana lehibe indrindra azo atao.

Ohatra, ny baiko "trap {send_user" Ouch! "} SIGINT" dia hanonta "Ouch!" isaky ny mampiditra ilay mpampiasa ^ C.

Amin'ny alàlan'ny default, SIGINT (izay azo ovaina matetika amin'ny fanindriana ny ^ C) sy SIGTERM dia mitaky ny fivoahana. Izany dia vokatry ny fandrika manaraka, noforonina tamin'ny alàlan'ny fanombohan'ny Expect.

fandripahana trap {SIGINT SIGTERM}

Raha mampiasa ny saina -D ianao hanombohana ny debugger, dia nofaritana ny SIGINT mba hanombohana ny debugger interactif. Izany dia vokatry ny fandrika manaraka:

fandrika {exp_debug 1} SIGINT

Azonao ovaina ny fandrika fandikana debogger amin'ny alàlan'ny fametahana ny fari-drakitra environment EXPECT_DEBUG_INIT amin'ny baiko vaovao vaovao.

Azonao atao, mazava ho azy, ny manitsakitsaka azy ireo amin'ny alalan'ny fampidirana ny baikon'ny fandrika amin'ny scripto. Raha ny tena izy, raha manana ny "SIGINT" anao ianao, dia hanova ny fandrika fandrika. Tena ilaina izany raha te hisoroka ny mpisera amin'ny aterineto ianao.

Raha te-hamaritra ny fandrika tianao ao amin'ny SIGINT ianao fa manoka amin'ny debugger rehefa mihazakazaka izy dia ampiasao:

raha {! [exp_debug]} {trap mystuff SIGINT}

Azonao atao koa ny mangataka amin'ny debugger amin'ny fampiasana famantarana hafa.

Ny fandrika dia tsy hamela anao handresy lahatra ny hetsika ho an'ny SIGALRM satria ampiasaina anaty ao amin'ny Expect izany . Ny baikon'ny disconnect dia mametraka SIGALRM mankany SIG_IGN (tsy raharahaina). Afaka averinao indray izany raha mbola esorina izany mandritra ny baiko manaraka.

Jereo ny famantarana (3) ho an'ny vaovao bebe kokoa.

miandry [args]
mitohy mandra-pahatapitr'asa (na ny dingana ankehitriny raha tsy misy anarana).

miandry fotsiny dia mamerina lisitra misy laharana efatra. Ny laharana voalohany dia ilay pidin'ny dingana izay niandry. Ny isa faharoa dia ny ID mitambatra. Ny laharana fahatelo dia -1 raha toa ka nisy hadisoana eo amin'ny rafitra miasa, na 0 raha tsy izany. Raha ny laharana fahatelo dia 0, ny tarehimarika fahefatra dia ny toeran'ny volavolan-dalàna . Raha ny laharana fahatelo dia -1, ny isa efatra dia ny sandan'ny errno napetraky ny rafitra miasa. Ny famaha ny safidy ery eran-tany dia napetraka ihany koa.

Ny singa fanampiny dia mety hiseho amin'ny faran'ny valifaty miverina amin'ny fiandrasana . Ny singa fahadimy iray azo isafidianana dia manondro antontam-baovao. Currently, the only possible value for this element is CHILDKILLED in which case the values ​​two values ​​are the C-style name signal and a description of a short text.

Ny sainan'ny -i dia manambara ny dingana tokony hiandry mifanaraka amin'ilay lazaina hoe spawn_id (TSY ilay process id). Ao anatin'ny mpandrindra SIGCHLD dia azo atao ny miandry ny dingana rehetra mitranga amin'ny fampiasana ny ID -1.

Ny sainan'ny -nowait dia mahatonga ny fiandrasana hiverina avy hatrany miaraka amin'ny fanondroana fahombiazana. Rehefa tapitra ny fizotrany (aoriana), dia hanjavona tsy misy ilana azy izy.

Ny baiko miandry dia mety ampiasaina ihany koa ny fiandrasana ny dingana efa voasonia amin'ny fampiasana ny "-1i". Raha oharina amin'ny fampiasana azy amin'ny programa voamarina dia mety hovonoina io baiko io amin'ny fotoana rehetra. Tsy misy fanaraha-maso izay mety hitranga. Na izany aza, ny valin'ny fiverenana dia azo zahana atao amin'ny process id.

trano famakiam-boky

Ny andrasana dia mahafantatra momba ireo tranokala roa natsangana ho an'ny Skype Expect. Ireo dia voafaritry ny torohay voalaza ao amin'ny fari-piadanana exp_library sy exp_exec_library. Samy midika fa misy tahiry utility izay azo ampiasaina amin'ny scripty hafa.

exp_library dia misy tahirin-tsarintanin'ny tranokala. Exp_exec_library dia misy tahirin-tsoratadidy arakaraky ny rafitra. Miankina amin'ny rafitrao, ny roa tontonana dia mety ho foana tanteraka. Ny fisiana ny rakitra $ exp_exec_library / cat-buffers dia manoritsoritra raha toa ka ny default ny / / cat / cat buffers.

Pretty-FANONTANA PRINTY

Misy famaritana vgrind misy ho an'ny fanontana tsara tarehy vita printy. Ny fiheverana ny famaritana ny vgrind izay omena ny fizarana Afa -po dia voaorina tsara, azonao ampiasaina toy ny:

vgrind -lexpect file

OHATRA

Tsy dia mazava loatra ny fomba hametrahana ny zava-drehetra izay mamaritra ny pejin'ny lehilahy . Mamporisika anao aho hamaky sy hanandrana ireo ohatra ao amin'ny lahatahiry nomena amin'ny fizarana amin'ny fitrandrahana . Ny sasany amin'izy ireo dia programa tena izy. Ny hafa dia maneho fotsiny ny teknika sasantsasany, ary mazava ho azy, mpivady vao haingana fotsiny. Ny rakitra INSTALL dia manana fijery fohy momba ireo programa ireo.

Ny taratasy fanantenana (jereo SEE ALSO) dia ilaina ihany koa. Na dia misy antontan-taratasy sasany aza mampiasa ny sentaksa mifanaraka amin'ny dikan-teny Expect taloha, dia mbola manan-kery foana ireo rationales miaraka aminy ary miditra amin'ny antsipiriany bebe kokoa noho ny pejy an'io.

ny fampitandremana aorina

Ny extensions dia mety mifamadika amin'ny anaran'ny baiko miaina. Ohatra, ny fandefasana dia voafaritry ny Tk ho an'ny tanjona hafa. Noho izany antony izany, ny ankamaroan'ny baiko Expect dia misy ihany koa ho "exp_XXXX". Ny baiko sy ny fari-piaviana manomboka amin'ny "exp", "inter", "spawn", ary "timeout" dia tsy manana aliases. Ampiasao ny anaran'ireo baiko nomena anao raha mila an'ity fifanarahana ity eo amin'ny tontolo iainana ianao.

Ny fitrandrahana dia mijery ny fomba fijery malalaka amin'ny fandroahana. Amin'ny ankapobeny, ny fari-pahalalana vakiana amin'ny baiko manokana amin'ny programa Expect dia ho tadiavina aloha amin'ny sehatra ao an-toerana, ary raha tsy hita, ao anatin'ny habaka maneran-tany. Izany, ohatra, dia manamaivana ny ilana hametrahana ny "Timeout maneran-tany" amin'ny fomba rehetra izay soratanao izay ampiasaina. Etsy ankilany, ny voasoratra rehetra dia voasoratra any amina toerana misy azy (raha tsy hoe misy baiko "maneran-tany"). Ny olana mahazatra indrindra dia miteraka izany rehefa atao amina fomba fanao ny famonoana. Ankoatra ny paikady dia tsy misy intsony ny spawn_id , noho izany dia tsy hita intsony ny fizotry ny hazakazaka noho ny fanesorana. Ampio "spawn_id" eran'izao tontolo izao amin'ny fomba toy izany.

Raha toa ka tsy afaka mamela ny fahaizan'ny multispawning (ie, ny rafitrao dia tsy manohana na mifidy (BSD *. *), Poll (SVR> 2), na zavatra mitovy), Ny fanantenana ihany no afaka hifehezana ny dingana tokana amin'ny fotoana iray. Amin'ity tranga ity, aza manandrana manamboatra spawn_id , ary aza asiana dingana amin'ny alalan'ny fandefasana raha toa ka mihazakazaka ny fizotrany . Ankoatra izany, tsy ho afaka hiandrasana amin'ny processus maro ianao (anisan'izany ny mpampiasa amin'ny iray) amin'ny fotoana iray ihany.

Ireo mari-pamantarana Terminal dia mety hisy fiantraikany lehibe amin'ny scriptures. Ohatra, raha misy soratra iray nosoratana mba hitadiavana fihenanam-po, dia tsy mety ny manelingelina raha toa ka mihodina ny famerenana. Noho izany antony izany, ny paikady terminal Expect dia mampihemotra ny endriky ny terminal. Mampalahelo fa mety hahatonga ny zavatra tsy mahafinaritra ho an'ny programa hafa izany. Ohatra, ny shell emacs dia maniry ny hanova ny "mahazatra" mappings: manondro ireo raki-tsoratra vaovao ho solon'ireo raki-tsoratra fa tsy fiara-hamerenana vaovao, ary ny fihenoana dia kilemaina. Izany dia ahafahan'ny olona mampiasa emacs hanitsiana ny tsipika fidirana. Indrisy anefa fa tsy azo eritreretina izany.

Azonao atao ny mangataka an'izany, fa aza manitatra ny fari-piafaranao amin'ny endri-tsafidy, fa tokony hitandrina be ianao rehefa manoratra scripts ho an'ny tontolo toy izany. Raha toa ka misy emacs dia aza misalasala miankina amin'ny zavatra toy ny fandalinana sy ny endriky ny endriny.

Ireo baiko izay nanaiky ny hevitra nokarama ho lisitra iray (ny manantena ny vary sy ny fifanakalozan-kevitra ) dia mampiasa heuristic hanapahan-kevitra raha toa ka loha-hevitra iray na maro ny lisitra. Ny heuristika dia tsy mety raha tsy amin'ny tranga raha ny lisitra dia maneho ny soso-kevitra tokana izay misy endritsoratra maromaro n \ n misy ireo tarehimarika tsy misy fotony. Toa tsy azo ihodivirana izany, saingy ny fandresen-dahatra "-nobrace" dia azo ampiasaina hanerena hevitra tokana izay ho raisina ho hevitra tokana. Mety ho azo ampiasaina amin'ny code code Expect machine. Toy izany koa, ny mpitarika dia mitarika adihevitra tokana mba hiatrehana lamina / hetsika maromaro.

bibikely

Tena nanandrana nanonona ny fandaharana "sex" (ho an'ny "Smart EXec" na "Send-Expect"), saingy nandresy ny hevitra (na Puritanism) fotsiny.

Amin'ny rafitra sasantsasany, rehefa misy maratra miposaka, dia mitaraina noho ny tsy fahafahana miditra amin'ny tty fa mihazakazaka ihany. Midika izany fa ny rafitra misy anao dia manana fepetra hahazoana ny tty mifehy izay tsy ampoizina. Azafady mba fantarao hoe inona izany, ary alefaso any amiko ity fampahalalana ity.

Ultrix 4.1 (farafahakeliny ireo dikan-teny farany eto) dia mihevitra ny fotoana maharitra mihoatra ny 1000000 ka mitovy 0.

Digital UNIX 4.0A (ary mety ho dikan-teny hafa) dia mandà ny hanomezan'ny ptys raha mamaritra mpihazona SIGCHLD. Jereo ny pejin-tranonkala ho an'ny vaovao bebe kokoa.

Ny IRIX 6.0 dia tsy manara-dalàna ny fametrahana pty araka ny tokony ho izy raha tsy manandrana manolotra pty izay efa nampiasan'ny olon-kafa alohan'ny fividianana azy, dia tsy mahomby izany. Fanavaozana ny IRIX 6.1.

Telnet (azo antoka fa eo ambanin'ny SunOS 4.1.2) dia mihantona raha tsy voafetra ny TERM. Olana iray eo ambanin'ny cron, ao amin'ny script sy cgi, izay tsy mamaritra ny TERM. Noho izany, tsy maintsy mametraka azy mazava tsara ianao - amin'ny karazana mahazatra tsy mahaliana. Tokony hapetraka amin'ny zavatra iray fotsiny! Ireto manaraka ireto dia mety ampy ho an'ny ankamaroan'ny tranga.

set env (TERM) vt100

Tip (voamarina raha tsy BSDI BSD / OS 3.1 i386) no mihantona raha tsy voafetra ny SHELL sy ny HOME. Olana iray eo ambanin'ny cron , na ao amin'ny script sy cgi , izay tsy mamaritra ny fari-piainana manodidina azy. Noho izany, tokony hametraka mazava tsara azy ireo ianao - amin'ny karazana mahazatra matetika. Tokony hapetraka amin'ny zavatra iray fotsiny! Ireto manaraka ireto dia mety ampy ho an'ny ankamaroan'ny tranga.

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

Ny fanatanterahana sasany ny ptys dia novolavolaina mba ahafahan'ny kernel mamoaka ny vokatra tsy nodiavina aorian'ny 10 ka hatramin'ny 15 segondra (ny isa marina dia miankina amin'ny fametrahana) rehefa tapaka ilay dika ny dossier ny dossier. Tahaka izany ny programa Expect toy ny

Ny daty hamaranana ny andro fitsaharana 20 dia miandry

tsy hahomby. Mba hisorohana izany dia miantsoa ireo programa tsy misy fifanakalozan-kevitra miaraka amin'ny fitarihana fa tsy mamoaka . Na dia mety ho toy izany aza ny toe-javatra toy izany, raha ny marina dia tsy nahita toe-javatra iray izay ahavitana ny vokatra farany amin'ny fandaharan'asa iray tena enti-miantoka noho ity fihetsika ity.

Etsy ankilany, ny Cray UNICOS dia manala ny vokatra tsy navoaka avy hatrany rehefa vita ny famaritana ny rakitra. Nolazaiko tamin'i Cray izany ary miara-miasa izy ireo.

Indraindray ny faharetana dia takiana eo anelanelan'ny bitsika sy valiny, toy ny rehefa manova ny UART ny fikandrana tty na ny tarehimarika baud amin'ny alàlan'ny fikatsahana ny fanombohana / fijanonana. Amin'ny ankapobeny, izany rehetra izany dia ilaina ny matory mandritra ny roa na roa. Ny teknikam-pahefana matanjaka kokoa dia ny miverimberina mandra-panaovana ny fitaovana ampiasaina amin'ny fitaovana. Ity ohatra manaraka ity dia mampiasa fomba roa:

alefaso "9600 r \"; matory 1 miandry {timeout {alefaso "r \"; exp_continue} $ prompt}

Ny trap -code dia tsy miasa amin'ny baiko rehetra izay mipetraka ao amin'ny tadin'ny hetsika Tcl, toy ny torimaso. Ny olana dia ao amin'ny loopan'ny hetsika, ny Tcl manadino ny code return avy amin'ny mpitantana ny async. Ny famaranana dia ny mametraka sainam-pandaminana ao amin'ny codecode. Dia jereo ny saina avy hatrany aorian'ny baiko (izany hoe, torimaso).

Ny didim-pananana expected_background dia tsy miraika-ny adihevitra momba ny fotoana ary tsy manana ny foto-drafitra amin'ny ankapobeny.

& # 34; FANAZAVANA & # 34;

Misy zavatra roa momba ny Manantena fa mety ho tsy misy dikany. Ity fizarana ity dia manandrana mametraka sasantsasany amin'ireo zavatra ireo amin'ny soso-kevitra roa.

Ny faharetan'ny olana dia ny fomba hahafantarana ny fanondroana ny shell. Koa satria samy manana ny fomba amam-panao amin'ny hafa ny olona sy ny kônkely samihafa, dia mety ho sarotra ny tsy fisian-tsain-dry zareo. Fivoriambe azo ekena dia ny fananana mpisera iray mitazona fomba fiteny fohy milaza ny bitsiny (indrindra indrindra ny fiafaran'izany) ao amin'ny fari-pahaizan'ny tontolo iainana EXPECT_PROMPT. Azo ampiasaina ny code toy ireto manaraka ireto. Raha tsy misy ny EXPECT_PROMPT, dia mbola manana fahafahana hanao ny tsara ihany ny code.

Manantona prompt "(% | # | \\ $) $"; # fisehoan-drakitra tsy ampoizina {set prompt $ env (EXPECT_PROMPT)} antika -ro $ prompt

Mamporisika anareo aho hanoratra fanantenana fa misy ny endrik'izay izay antenainao. Izany dia manakana ny fahafahana mamaly fanontaniana tsy hijery ny zava-drehetra. Ankoatr'izay, raha mety ho afaka hamaly fanontaniana ianao alohan'ny hahita azy ireo tanteraka, raha toa ka mamaly aloha ianao, dia mety hipoitra indray ny valiny eo afovoan'ilay fanontaniana. Raha lazaina amin'ny teny hafa dia ho marina ny fifanakalozan-kevitra saingy hitodika ny masony.

Ny ankamaroan'ny fanontana dia ahitana karazana habaka amin'ny farany. Ohatra, ny bitsika avy amin'ny ftp dia 'f', 't', 'p', '>' ary. Mba hampifaliana an'ity bitsika ity, dia tsy maintsy ampamoahinao ireo tsirairay ireo. Fahadisoana mahazatra tsy mampiditra ny banga. Apetraho mazava tsara ny banga.

Raha mampiasa ny lamina X * ianao, dia hifanaraka amin'ny vokatra rehetra azonao hatramin'ny faran'ny X ka hatramin'ny farany. Mampihetsi-po izany, saingy mety ho somary misafotofoto satria ny fehezan-teny hoe "zavatra farany voaray" dia mety miova arakaraka ny haavon'ny solosaina sy ny fanodinana I / O amin'ny kernel sy ny mpamily.

Ny tena manokana, ny olona dia mijery ny fandaharana amin'ny fandehanana any amin'ny seza goavam-be (atomika) raha ny ankamaroan'ny fandaharana dia mamoaka ny dikan-tsoratra iray isaky ny mandeha. Raha heverina fa izany no zava-misy, ny * ao amin'ny lamin'ny fehintsoratra teo aloha dia mety hifanitsy amin'ny faran'ny andalana ankehitriny, na dia toa betsaka kokoa aza, satria tamin'ny fotoanan'ny lalao izay ny vokatra rehetra noraisina.

Ny fanantenana dia tsy misy fomba ahafantarana fa ny famoahana hafa dia ho avy raha tsy misy ny firaiketanao manokana.

Na dia miankina amin'ny fandefasana ny tsindrim-peo aza dia tsy fahendrena. Ny programa dia tsy vitan'ny hoe mampanantena ny karazana fandefasana ataon'izy ireo, fa ny tsy firaharahan'ny rafitra dia afaka manapaka ny tsipika avoakany mba hahafahan'ireo teboka manjavona amin'ny toerana tsy mety. Noho izany, raha azonao atao ny milaza ny endritsoratra vitsivitsy farany amin'ny bitsika iray rehefa manoratra ny lamina, dia fahendrena ny manao izany.

Raha miandry ny lasitra amin'ny vokatra farany amin'ny programa iray ianao ary ny programa dia mandefa zavatra hafa fa tsy izany, dia tsy ho afaka hamantatra izany ianao miaraka amin'ny teny fitenin'ny Timeout . Ny antony dia tsy manantena ny fotoana tsy hitrangany - fa tsy hisy ny fanamafisam-peo. Ampiasao izany. Na tsara kokoa aza, ampiasao roa. Amin'izany fomba izany raha toa ka mihetsika manodidina io andalana io, dia tsy voatery hanitsy ny laharana ianao.

Ny Newlines dia miverimberina mankany amin'ny fiverenana entana, fizarana an-tsisintany rehefa manomboka amin'ny mpamily terminal. Noho izany, raha tianao ny lamina iray izay mifanandrify amin'ny andalana roa, avy amin 'ny, say, printf ("foo \ nbar"), tokony hampiasa ny lamina "foo \ rbarbar".

Misy dikany mitovy amin'izany rehefa mamaky avy amin'ilay mpampiasa, amin'ny alalan'ny wait_user . Amin'ity tranga ity, rehefa miverina ianao dia hiverina amin'ny dikan-teny. Raha toa ka miaina izany amin'ny programa iray izay mametraka ny endriny ho amin'ny fomba maoderina (toy ny telnet), dia hisy ny olana, satria manantena ny fiverenana marina ny programa. (Misy fandaharana sasany dia tena mamela heloka raha toa ka handika azy ireo vaovao avy any aoriana izy ireo, saingy ny ankamaroany dia tsy izany.) Indrisy anefa fa tsy misy fomba ahafantarana fa ny programa dia mametraka ny endriny ho modely maody.

Raha tokony hanolo ny rindran-damina amin'ny famerenana amin'ny laoniny ny solosaina, ny vahaolana dia ny hampiasa ilay baiko hoe "stty raw", izay hanakana ny fandikan-teny. Mariho anefa, izany dia midika fa tsy ho azonao intsony ny endri-tsoratra karazan-tsakafo efa vita.

Ny fifandraisana dia mametraka ny terminal anao ho amin'ny môtô maniry mba tsy hipoitra izany olana izany.

Ilaina matetika ny mitahiry tenimiafina (na fampahalalana manokana hafa) ao amin'ny rakitsoratra Expect . Tsy voatery izany satria ny zavatra rehetra mitahiry amin'ny ordinatera dia mety ho azo atokisana amin'ny olona rehetra. Noho izany, ny fanentanana mifandraika amin'ny tenimiafina avy amin'ny script dia hevi-dalina kokoa noho ny fampidirana azy ara-bakiteny. Na izany aza, indraindray ny fampidirana toy izany dia ny hany azo atao.

Mampalahelo fa tsy manana fomba mivantana ny famoronana rakitra izay azo tanterahina fa tsy azo amidy. Ireo rafitra izay manohana ireo sora-pandrefesana shell dia mety hanimba toy izao manaraka izao:

Mamoròna ny scripta miandry (izay misy ny angona miafina) tahaka ny mahazatra. Ataovy ny fanomezan-dàlany ho 750 (-rwxr-x ---) ary tompon'orinasa iray azo itokisana, izany hoe, vondrona izay avela hamaky azy io. Raha ilaina dia mamorona vondrona vaovao ho an'ity tanjona ity. Avy eo, mamorona script / bin / sh miaraka amin'ny fahazoan-dàlana 2751 (-rwxr-s-x) an'ny vondrona mitovy amin'ny taloha.

Ny vokatra dia script izay mety hovonoina (ary vakiana) avy amin'iza na iza. Rehefa ampiasaina izy io, dia mihazakazaka ny Skype Expect .

& # 34; SEE ALSO & # 34;

Tcl (3), libexpect (3)
"Fanadihadiana manazava: tetikasa tcl-based" ho an'ny fanatontosana programa interactivée " nataon'i Don Libes, p. 602, ISBN 1-56592-090-2, O'Reilly sy Associates, 1995.
"miandrandra: ny fanasitranana ireo tsy azo ovaina ho an'ny interactivity" nosoratan'i Don Libes, fandaharam-potoana tamin'ny fihaonamben'ny USENIX 1990 tany Anaheim, Californie, 11-15 Jona 1990.
I "Mampiasa ny andrasana amin'ny fanodinana ny asa momba ny fitantanana ny orinasa" nataon'i Don Libes, Fitsidihana ny Konferansa momba ny fitantanana lehibe 1990 an'ny USENIX, Colorado Springs, Colorado, ny 17-19 Oktobra 1990.
I "Tcl: Language Commandable" amin'ny alàlan'ny John Ousterhout, fandaharam-potoan'ny fifaninanana USENIX Winter 1990, Washington, DC, 22-26 Janoary 1990 .. "Manantena: Scripts for Controlling Interactive Programs" nataon'i Don Libes, Computing Systems , Vol. 4, No. 2, Gazety ofisialin'ny Kalifornia, novembre 1991 .. "Fandaharam-potoana fandinihan-tena sy fitiliana fandaharan'asa fandaharan'asa fandaharanasa", nataon'i Don Libes, fandaharam-potoana tamin'ny Konferansa USENIX 1992, pp. 135-144, San Antonio, TX, 12-15 Jona 1992 ... "I Kibitz - Mampifandray ny fandaharan'asa samihafa miara-miasa", nataon'i Don Libes, Software - Practice & Experience, John Wiley & Sons, West Sussex, Angletera, Vol.

23, No. 5, May, 1993..I "Debugger for Tcl Applications", nataon'i Don Libes, Fandaharam-potoana tamin'ny Workshop Tcl / Tk 1993, Berkeley, CA, 10-11 Jiona 1993.

AUTHOR

Don Libes, National Institute of Standards and Technology

Fankasitrahana

Isaorana an'i John Ousterhout ho an'i Tcl, sy Scott Paisley noho ny fanentanam-panahy. Misaotra an'i Rob Savoye ho an'ny code autoconfiguration fanantenana.

Ny rakitra HISTORY dia manoratra betsaka amin'ny fivoaran'ny fanantenana . Mahatonga ny famakiana mahaliana ary mety hanome fanazavana bebe kokoa momba ity rindrambaiko ity. Misaotra ireo olona voalaza ao anatin'io izay nanafatra ahy ny famahana ny olana ary nanome fanampiana hafa.

Ny famolavolana sy ny fampiharana ny Fanantenana dia nandoa vola tamin'ny ampahany nataon'ny governemanta Amerikana ary noho izany dia ao amin'ny sehatra ho an'ny daholobe. Na izany aza, ny mpanoratra sy ny NIST dia te-hanan-kery raha ampiasaina ity programa sy antontan-taratasy na ampahany amin'izy ireo.