Ag súil leis an Ordú Linux / Unix

Is éard atá i gceist ná clár a labhair le cláir idirghníomhacha eile de réir script. Tar éis an script, tá a fhios ag súil go bhféadfaí a bheith ag súil leis ó chlár agus cad é an freagra ceart a bheadh ​​ann. Soláthraíonn teanga ateangaireachta struchtúir rialaithe brainse agus ardleibhéil chun an dialóg a threorú. Ina theannta sin, is féidir leis an úsáideoir smacht a fháil agus idirghníomhú go díreach nuair atá sé ag teastáil, agus ansin ag rialú ar ais chuig an script.

Is meascán de Ag súil agus Tk é an t-agallamh. Bíonn sé cosúil le mianta Ag súil agus Tk a iompar. Is féidir súil a úsáid freisin go díreach i C nó C + + gan Tcl.

Tagann an t-ainm "Ag súil" as an smaoineamh seicheamh a sheoladh / a bheith ag súil leis go bhfuil uucp, kermit agus cláir rialaithe modem eile á gcur i láthair acu. Mar sin féin, murab ionann agus uucp, táthar ag súil go bhfuiltear ag súil go bhféadfar é a reáchtáil mar ordú leibhéal úsáideora le haon chlár agus tasc ar intinn. Is féidir súil a bheith ag labhairt le roinnt clár ag an am céanna.

Cad is féidir a bheith ag súil leis

Mar shampla, tá anseo roinnt rudaí is féidir leis an ordú a bheith ag súil leis:

Tá cúiseanna éagsúla ann nach féidir leis an bhlaosc na tascanna seo a dhéanamh. Is féidir go léir le Ag súil.

Go ginearálta, tá súil go bhfuil sé úsáideach le reáchtáil aon chlár a éilíonn idirghníomhaíocht idir an clár agus an t-úsáideoir. Is é gach rud is gá ná gur féidir an idirghníomhaíocht a shainmhíniú go clárúil. Is féidir leis an súil freisin rialú a thabhairt don úsáideoir gan an clár a choinneáil á rialú. Ar an gcaoi chéanna, is féidir leis an úsáideoir rialú a thabhairt ar ais chuig an script ag am ar bith.

Úsáid

Tá súil ag cmdfile a léamh le liosta de na horduithe a fhorghníomhú. Táthar ag súil go n-iarrfar go hintuigthe ar chórais a thacaíonn leis an #! nóta ag an script a mharcáil mar inrite agus an chéad líne a dhéanamh sa script:

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

Ar ndóigh, ní mór don chosán cur síos cruinn a dhéanamh ar an áit a bhfuil Ag súil le saol. / usr / local / bin ach sampla.

Tá réamh-ordú ag an bratach -c a bheidh le déanamh roimh aon cheann sa script. Ba cheart an t-ordú a lua chun cosc ​​a chur ar an bhlaosc a bhriseadh suas. Is féidir an rogha seo a úsáid arís agus arís eile. Is féidir le horduithe éagsúla a fhorghníomhú le aon -c trí iad a scaradh le semicolons. Déantar orduithe a fhorghníomhú san ord a fheiceann siad. Nuair a bhíonn Ag súil ag baint úsáide as, déantar an rogha seo a shonrú mar-chomhrá.

Cuireann an bhratach -d aschur diagnóiseach ar fáil, a thuairiscíonn go príomha le gníomhaíocht inmheánach orduithe ar nós súil agus idirghníomhú. Tá an éifeacht chéanna ag an bratach seo mar "exp_internal 1" ag tús an Script ag súil, chomh maith leis an leagan de Ag súil atá clóite.

Cuireann an bratach -D ar chumas dífhabhtóir idirghníomhach. Ba chóir go leanfadh luach slánuimhir. Glacfaidh an dífhabhtóir smacht roimh an nós imeachta eile Tcl má tá an luach neamh-nialasach nó má tá brúite ag C nó má bhuailfear briseadh, nó is cosúil go bhfuil ordú eile deimhnitheora cuí sa script. Nuair a bhíonn Ag súil ag baint úsáide as, déantar an rogha seo a shonrú mar - Deoclán.

Réamhshocraíonn an bhratach -f comhad ónar féidir orduithe a léamh. Tá an bratach féin roghnach toisc nach bhfuil sé úsáideach ach amháin nuair a úsáideann an #! nótaí, ionas gur féidir argóintí eile a sholáthar ar an líne ordaithe. Nuair a bhíonn Ag súil ag baint úsáide as, déantar an rogha seo a shonrú mar an teilifís.

De réir réamhshocraithe, léitear an comhad orduithe i gcuimhne agus é a fhorghníomhú ina iomláine. Tá sé inmhianaithe ó am go chéile na comhaid a léamh líne amháin ag an am. D'fhonn na comhaid theagmhasacha a láimhseáil ar an mbealach seo, bain úsáid as an bhratach -b. Nuair a bhíonn Ag súil ag baint úsáide as, déantar an rogha seo a shonrú mar - coimeád.

Má sholáthraítear an téad "-" mar ainm comhaid, léitear ionchur caighdeánach ina ionad. Bain úsáid as "./-" le léamh ó chomhad iarbhír ainmnithe "-".

Braitheann an bhratach -i Ag súil go n-iarrfar orduithe go hidirghníomhach seachas iad a léamh ó chomhad. Críochnaíonn an t-ordú tríd an ordú scoir nó ar EOF. Glactar leis an mbratach -i mura n-úsáidtear comhad orduithe ná -c. Nuair a bhíonn Ag súil ag baint úsáide as, déantar an rogha seo a shonrú mar tharraingteach.

- féadfar é a úsáid chun deireadh na roghanna a dhíchur. Tá sé seo úsáideach má theastaíonn uait argóint cosúil le rogha a thabhairt ar do script gan é a bheith léirmhínithe ag Ag súil. Is féidir é seo a chur go héasca sa #! líne chun cosc ​​a chur ar aon léirmhíniú flaglike ag Ag súil. Mar shampla, fágfaidh na nithe seo a leanas na hargóintí bunaidh lena n-áirítear ainm an script sa argv athraitheach.

#! / usr / local / bin / expect -

Tabhair faoi deara go gcaithfear na coinbhinsiúin is gnách getopt (3) agus execve (2) a thabhairt faoi deara nuair a chuirtear argóintí isteach go dtí an #! líne.

Faightear an comhad $ exp_library / expect.rc go huathoibríoch má tá sé i láthair, mura n-úsáidtear an bhratach -N. (Nuair atátear ag baint úsáide as Ag súil, déantar an rogha seo a shonrú mar -NORC.) Díreach tar éis seo, faightear an comhad ~ / .expect.rc go huathoibríoch, mura n-úsáidtear an bhratach. Má tá an t-athróg DOTDIR timpeallachta sainmhínithe, déantar é a chóireáil mar chomhadlann agus léitear .expect.rc as ann. Nuair a bhíonn Ag súil ag baint úsáide as, déantar an rogha seo a shonrú mar -norc. Ní thagann an foinsiú seo ach tar éis aon bhratacha -c a fhorghníomhú.

-v cúiseanna Tá súil agam a phriontáil uimhir a leagan agus scoir. Is é an bratach comhfhreagrach in Expectk, a úsáideann ainmneacha bratach fada, ná-léamh.

Déantar args roghanna i liosta agus a stóráiltear san athróg ainmnithe argv agus. Déantar argc a thosú ar fhad an argv.

Sainmhínítear Argv0 gur ainm an script nó an dénártha é mura n-úsáidtear script. Mar shampla, léiríonn na priontaí seo a leanas ainm an script agus na trí chéad argóint:

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

Orduithe

Ag súil go n-úsáideann Teanga Ordú Uirlisí. Soláthraíonn Tcl sreabhadh rialaithe (más rud é, le haghaidh briseadh), meastóireacht ar léiriú agus roinnt gnéithe eile cosúil le sainmhíniú athchúrsála agus nós imeachta. Is iad orduithe Tcl a úsáidtear anseo ach nach bhfuil sainmhínithe (socraithe, más rud é, exec). Táthar ag súil le tacaí breise a fháil. Mura sonraítear a mhalairt, cuirfidh na horduithe an teaghrán folamh ar ais.

Tá na horduithe liostaithe in aibítre ionas gur féidir iad a bheith suite go tapa. Mar sin féin, d'fhéadfadh sé níos éasca d'úsáideoirí nua tosú ag léamh na tuairiscí ar sceitheadh, a sheoladh, a bheith ag súil agus ag idirghníomhú, san ord sin.

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

Dúnann an ceangal leis an bpróiseas reatha. Brathfaidh an chuid is mó de na cláir idirghníomhacha EOF ar a stdin agus scoirfidh siad; mar sin de ghnáth is leor an próiseas a mharú chomh maith. Dearbhaíonn an bratach -i an próiseas a dhúnadh a fhreagraíonn don spawn_id ainmnithe.

Braitheann an dá súil agus idirghníomhú nuair a théann an próiseas reatha amach agus go n-intuigthe go gcríochnóidh sé, ach má mharú tú an próiseas , deir, "exec kill $ pid", caithfidh tú glaoch go sainráite .

Cinneann an bratach -onexec an bhfuil an id sceitheadh ​​dúnta in aon phróisis nua sceite nó má tá an próiseas ró-léite. Chun id sceitheadh ​​a fhágáil oscailte, bain úsáid as an luach 0. Tabharfaidh luach slánuimhir neamh-nialas an sciath a dhúnadh in aon phróisis nua.

Dúnann an bratach an tSlave an daor a bhaineann leis an id sceithe. Nuair a dhúnadh an nasc, déantar an daor a dhúnadh go huathoibríoch freisin má tá sé fós ar oscailt.

Is cuma an bhfuil an nasc dúnta go hintuigthe nó go sainráiteach, ba cheart duit glaoch ar an sliotán comhréire eitleán comhfhreagrach a ghlanadh. Ní ghlaonn an t-ordú dlúth ag fanacht ós rud é nach bhfuil aon ráthaíocht ann go gcuirfidh nasc próisis chun críche go scoirfidh sé.

debug [[-now] 0 | 1]

rialaíonn dífhabhtóir Tcl a thugann deis duit céim a chur trí ráitis agus seasaimhsí socraithe.

Gan aon argóintí, cuirtear 1 ar ais mura bhfuil an dífhabhtóir á reáchtáil, ar shlí eile cuirtear 0 ar ais.

Le 1 argóint, tosaíonn an dífhabhtóir. Le argóint 0, stoptar an dífhabhtóir. Más rud é go bhfuil an bratach ag an am céanna roimh 1 argóint, tosaítear an dífhabhtóir láithreach. Seachas sin, déantar an dífhabhtóir a thosú leis an gcéad ráiteas Tcl eile.

Ní athraíonn an t-ordú debug aon gaistí. Déan comparáid idir seo chun tús a chur leis an mBratach -D.

Déanann an t-orduithe dícheangal próiseas forked a dhúnadh ón teirminéal . Leanann sé ag rith sa chúlra. Tugtar a phróiseasghrúpa féin don phróiseas. Atreoraítear Caighdeán I / O chuig / dev / null .

Úsáideann an bloic seo a leanas a dhícheangal chun leanúint ar aghaidh ag rith an script sa chúlra.

má dhiúltaíonn {[fork]! = 0} dhícheangal. . .

Déanann an script seo a leanas focal faire agus ansin cuireann sé clár ar siúl gach uair an chloig a éilíonn focal faire gach uair a reáchtálfar é. Soláthraíonn an script an focal faire ionas go mbeidh ort ach é a chlóscríobh uair amháin.

send_user "phasfhocal? \" expect_user -re "(. *) \ n" le haghaidh {} 1 {} {más {[fork]! = 0} {codlata 3600; leanúint ar aghaidh} dícheangail sceite priv_prog ag súil Pasfhocal: seol "$ expect_out ( 1, teaghrán) \ r ". . . an slí amach }

Is é an buntáiste a bhaineann le dícheangal a úsáid thar ghné an phróisis asincrónaigh bhlaosc (&) ná gur féidir le súil go mbeidh na paraiméadair críochfoirt a shábháil sula ndéantar iad a dhícheangal agus ansin iad a chur i bhfeidhm i bptys nua. Le & Ní, tá súil agam go bhfuil seans ann paraiméadair an chríochfoirt a léamh ós rud é go bhfuil an críochfort dícheangailte cheana féin ag an am Ag súil go bhfaighidh súil leis.

scoir [-opts] [stádas]

cúiseanna Ag súil go scoirfidh tú nó a ullmhú ar shlí eile chun é sin a dhéanamh.

Tugann an bratach -onexit an chéad argóint eile le húsáid mar láimhseálaí scoir. Gan argóint, cuirtear an láimhseálaí scoir reatha ar ais.

Is éard atá i gceist leis an mbratach neamhchónaitheach Ag súil go n-ullmhaítear é a scoir ach stop a ghearradh ar rialú iarbhír ar ais chuig an gcóras oibriúcháin. Ritheann an láimhseálaí slí sainmhínithe ag an úsáideoir chomh maith le láimhseálaithe inmheánacha ag súil leis féin. Níor cheart aon ordú ag súil leis a fhorghníomhú. Tá sé seo úsáideach má tá tú ag rith Ag súil le sínteanna Tcl eile. Fanann an t-ateangairí reatha (agus an príomhfhuinneog má tá sé i dtimpeallacht Tk) ionas gur féidir le breiseáin Tcl eile a ghlanadh. Má iarrtar slí an t-agallamh arís (áfach, d'fhéadfadh sé seo a bheith ann), níl athruithe ar an láimhseálaithe.

Nuair atá siad ag fágáil, déantar naisc uile le próisis sceitheadh ​​a dhúnadh. Braitheofar go scoirfear mar EOF trí phróisis sceite. ní ghlacann slí amach aon ghníomhartha eile seachas an nós imeachta gnáth _exit (2). Dá bhrí sin, is féidir le próisis sceite nach ndéantar seiceáil ar EOF leanúint ar aghaidh ag rith. (Tá éagsúlacht coinníollacha tábhachtach a chinneadh, mar shampla, cad iad na comharthaí a chuirfear ar phróiseas sceite, ach tá siad seo ag brath ar an gcóras, de ghnáth mar dhoiciméadú faoi scoir (3).) Déanfaidh tionscnaimh próisis sceite a leanann ar aghaidh.

Tá stádas (nó 0 mura bhfuil sé sonraithe) ar ais mar stádas fágtha Ag súil . is féidir go dtiocfaidh an t-aistriú go hintuigthe má dhéantar deireadh an script.

exp_continue [-continue_timer]
Ligeann an exp_continue orduithe ag súil go leanfaidh sé de bheith ag feidhmiú seachas ag filleadh mar a bheadh ​​sé de ghnáth. De réir réamhshocraithe réamhshocraithe athshocraíonn an lasc ama ama. An bratach -continue_timer cosc a chur ar an lasc ama a atosú. (Féach ag súil le tuilleadh eolais a fháil)

exp_internal [-f comhad] luach
is cúis le horduithe breise faisnéis dhiagnóiseach a sheoladh inmheánach chun Ag súil le sruthán má tá luach neamh-nialasach. Tá an t-aschur seo faoi mhíchumas má tá luach 0. Cuimsíonn an fhaisnéis dhiagnóiseach gach carachtar a fuarthas, agus gach iarracht a dhéantar chun an aschur reatha i gcoinne na patrúin a mheaitseáil.

Má chuirtear an comhad roghnach ar fáil, scríobhtar an t-aschur gnáthchomhadála agus dífhabhtaithe go dtí an comhad sin (beag beann ar luach an luach ). Tá aon chomhad aschuir diagnóiseacha roimhe seo dúnta.

Tugann an bratach-phóca nochtadh chun tuairisc a thabhairt ar ais ar na hargóintí neamh-eolais is déanaí a tugadh.

exp_open [args] [-i spawn_id]
tuairisceán aitheantais comhad Tcl a fhreagraíonn don id sceitheadh ​​bunaidh. Is féidir an t-aitheantóir comhaid a úsáid ansin amhail is dá mba oscail an t-ordú oscailte Tcl é. (Níor cheart an t-ainm sceithe a úsáid a thuilleadh. Níor chóir fanacht a chur i gcrích.

Fágann an bratach -leaveopen an id sceitheoireachta ar oscailt le haghaidh rochtana trí orduithe ag súil. Ní mór fanacht a fhorghníomhú ar an id sceitheadh.

exp_pid [-i spawn_id]
an próiseas id a fhreagraíonn don phróiseas atá sceite faoi láthair. Má úsáidtear an bhratach -i , bíonn an pid ar ais a fhreagraíonn don id sceite a tugadh.

exp_send
Is alias atá le seoladh .

exp_send_error
Is alias do sheoladh_error é .

exp_send_log
Is alias do sheoladh_log é .

exp_send_tty
Is alias do send_tty é .

exp_send_user
Is alias do sheoladh_user é .

exp_version [[-exit] leagan]
úsáideach chun a chinntiú go bhfuil an script comhoiriúnach leis an leagan reatha de Ag súil.

Gan aon argóintí, cuirtear an leagan reatha de Ag súil ar ais. Is féidir an leagan seo a ionchódú ansin i do script. Má tá a fhios agat i ndáiríre nach bhfuil tú ag baint úsáide as gnéithe de leaganacha le déanaí, is féidir leat leagan níos luaithe a shonrú.

Is éard atá i leaganacha ná trí uimhreacha atá scartha le poncanna. Is é an chéad uimhir an chéad. Ní bheidh sé cinnte go n-oibreoidh scripteanna atá scríofa le haghaidh leaganacha de Ag súil le líon mór difriúil. nochtann nochtadh earráid mura gcomhlíonann na huimhreacha móra.

Is é an dara uimhir an líon beag. Féadfaidh scripteanna atá scríofa le haghaidh leagan le mionmhionad níos mó ná an leagan reatha a bheith ag brath ar ghné nua agus nach bhféadfadh sé a bheith ar siúl. Fágann an nochtadh earráid má mheaitseáil na huimhreacha móra, ach is lú an script atá níos lú ná an méid atá ag súil leis .

Is tríú cuid é nach bhfuil aon chuid sa chomparáid leagan. Mar sin féin, tá sé incriminteach nuair a athraítear an dáileadh bogearraí Ionchais ar bhealach ar bith, mar shampla trí dhoiciméadú breise nó uasmhéadú. Tá sé athshocraithe go 0 ar gach mion-leagan nua.

Leis an bratach a sheasamh , Dearbhaigh priontaí earráid agus fágtar amach má tá an leagan as dáta.

ag súil [[-opts] pat1 body1] ... [-opts] patn [bodyn]
fanann go dtí go gceannann ceann de na patrúin aschur próiseas sceite, tá tréimhse ama sonraithe tar éis a rith, nó feiceann comhad deiridh. Má tá an comhlacht deiridh folamh, féadfar é a fhágáil ar lár.

Úsáidtear go hintuigthe patrún as an ordú expect_before is déanaí roimh aon phátrúin eile. Úsáidtear go hintuigthe patrún as an ordú expect_after is déanaí tar éis aon phátrúin eile.

Má theastaíonn níos mó ná na líne ar na hargóintí go dtí an ráiteas go léir, is féidir na hagóintí go léir a "bhriseadh" i gceann ionas go seachnófar deireadh a chur le gach líne le cúlra. Sa chás seo amháin, beidh na hiontrálacha Tcl is gnách ar siúl in ainneoin na braille.

Más patrún an eof eochairfhocal, déantar an comhlacht comhfhreagrach a fhorghníomhú ar deireadh comhad. Más patrún é an t- am am eochairfhocal, déantar an comhlacht comhfhreagrach a fhorghníomhú ar am am. Mura ndéantar aon eochairfhocal ama ama a úsáid, déantar gníomh neamhthuigthe neamhghníomhach a fhorghníomhú tráth ama. Is é 10 tréimhse an t-am tréimhsí réamhshocraithe ach is féidir é a shocrú, mar shampla go dtí 30, de réir an ordaithe "am a leagtar amach 30". Féadfar luach ama -1 a ainmniú gan tréimhse gan teorainn. Más patrún é an réamhshocrú eochairfhocal, déantar an comhlacht comhfhreagrach a fhorghníomhú ar thréimhse ama nó ag deireadh an chomhaid.

Má théann patrún, ansin déanfar an comhlacht comhfhreagrach a fhorghníomhú. táthar ag súil le toradh an chomhlachta (nó an téadán folamh mura gcomhoirfí aon phátrún). Sa chás go gcomhlíonann patrúin ilghnéitheach, baintear úsáid as an duine atá le feiceáil ar dtús chun comhlacht a roghnú.

Gach uair a thagann aschur nua, déantar é a chur i gcomparáid le gach patrún san ord atá liostaithe acu. Dá bhrí sin, féadfaidh tú tástáil a dhéanamh as go bhfuil comórtas ann gan an rud deireanach a ráthaítear a thabhairt don phhatrún deireanach, cosúil le pras. I gcásanna nach bhfuil aon phras ann, ní mór duit am a úsáid (díreach mar a bheadh ​​agat má bhí tú ag idirghníomhú de láimh).

Sonraítear na patrúin i dtrí bhealach. De réir réamhshocraithe, sonraítear patrúin mar a bhfuil orduithe comhoiriúnú Tlin ar teaghrán . (Tá patrúin den sórt sin cosúil freisin le sainráiteanna rialta C-bhlaosc dá ngairtear "glob" patrúin de ghnáth). D' fhéadfaí an bhratach -gl a úsáid chun patrúin a chosaint a d'fhéadfadh a bheith ag súil le bratacha a bheith ag súil leo . Ba chóir aon patrún a thosaíonn le "-" a chosaint ar an mbealach seo. (Tá gach teaghrán ag tosú le "-" in áirithe do roghanna sa todhchaí.)

Mar shampla, féachann an t-amadán seo a leanas le logáil isteach rathúil. (Tabhair faoi deara gur meastar gur gnáthamh a shainmhínítear in áit eile sa script é an gortú ).

tá súil agam {gnóthach {cuireann gnóthach \ n; exp_continue} theip ar "phasfhocal neamhbhailí" bac a chur ar am ar fad abort ceangailte}

Tá luachanna riachtanach ar an gceathrú patrún ós rud é go bhfuil spás ann, rud a d'fhágfadh an patrún as an ngníomh. Éilíonn patrún leis an ngníomh céanna (amhail an 3ú agus an 4ú) na gníomhartha a liostú arís. Is féidir é seo a sheachaint trí úsáid a bhaint as patrúin regexp-stíl (féach thíos). Is féidir tuilleadh eolais a fháil maidir le patrúin glob-stíl a fháil sa lámhleabhar Tcl.

Lean patrúin na stíl Regexp an comhréir atá sainmhínithe ag Tcl's regexp (gearr le haghaidh "léiriú rialta"). tugtar isteach na patrúin regexp leis an bratach -re . Is féidir an sampla roimhe seo a athscríobh ag baint úsáide as regexp mar:

tá súil agam {gnóthach {cuireann gnóthach \ n; exp_continue} -re "theip ar do phasfhocal neamhbhailí" bac a chur ar am ar bith a d'eascair as ceangal}

Tá an dá chineál patrúin "unanchored". Ciallaíonn sé seo nach gcaithfidh na patrúin an sreang iomlán a mheaitseáil, ach is féidir tús a chur leis an gcluiche in aon áit sa teaghrán (chomh fada agus a luíonn gach rud eile). Úsáid ^ chun tús an teaghrán a mheaitseáil, agus $ chun an deireadh a mheaitseáil. Tabhair faoi deara, más rud é nach fanacht leat le haghaidh deireadh teaghrán, is féidir le do chuid freagraí deireadh a chur i lár an teaghrán go héasca mar go ndéantar iad a mhacasamhlú ón bpróiseas sceite. Cé go bhfuil torthaí ceart á dtáirgeadh fós, is féidir leis an aschur a bheith neamh-nádúrtha. Dá bhrí sin, spreagtar úsáid $ más féidir leat cur síos díreach ar na carachtair ag deireadh sreang.

Tabhair faoi deara go bhfuil go leor agus eagarthóirí ag ^ ^ $ ag tús agus deireadh línte faoi seach. Mar sin féin, toisc nach bhfuil sé ag súil go bhfuil líne dírithe, comhoiríonn na carachtair seo tús agus deireadh na sonraí (seachas línte) faoi láthair sa mhaolán comhoiriúnach atá ag súil leis. (Chomh maith leis sin, féach an nóta thíos ar "neamhchlaonadh an chórais.")

Déanann an bratach -ex an patrún a mheaitseáil mar shraith "cruinn". Ní dhéantar aon léirmhíniú ar *, ^, srl. (Cé go gcaithfear na coinbhinsiúin Tcl is gnách a thabhairt faoi deara). Tá patrúin ceart i gcónaí gan réiteach.

Is éard atá sa bhratach -nocase ná carachtair móra den aschur a chur i gcomparáid amhail is dá mba charachtair ísealchaighdeáin iad. Níl tionchar ag an bpatrún.

Agus an t-aschur á léamh, is féidir le níos mó ná 2000 bytes feidhm a bhaint as bytes níos luaithe le "dearmad". D'fhéadfaí é seo a athrú leis an fheidhm match_max . (Tabhair faoi deara gur féidir luachanna iomarcacha móra a mhaolú ar an gcumhdach patrún.) Má tá patlist full_buffer , déantar an comhlacht comhfhreagrach a fhorghníomhú má fuair faillí match_max agus níl aon patrúin eile comhoiriúnaithe. Cibé an eochairfhocal full_buffer a úsáidtear nó nach ea, scríobhtar na carachtair dearmadta ag expect_out (buffer).

Más é an t-eochairfhocal eochairfhocal is ea patlist , agus ceadaítear null (tríd an ordú remove_nulls ), déantar an comhlacht comhfhreagrach a fhorghníomhú má tá ASCII amháin 0 comhoiriúnach. Ní féidir comhaid 0 bytes a mheaitseáil trí phátrúin glob nó regexp.

Nuair a bhíonn patrún meaitseála (nó eof nó full_buffer), sábhálfar aon aschur meaitseála agus aschur neamh-chomhtháite roimhe seo sa expect_out (buffer) athraitheach. Sábhálann suas le 9 gcluichí fothraithe regexp sna hathróga expect_out (1, teaghrán) trí expect_out (9, teaghrán) . Má úsáidtear an bhratach -indí roimh phátrún, stóráiltear na hinnéacsanna tosaithe agus dar críoch (i bhfoirm atá oiriúnach do lrangan ) de na 10 teaghrán sna hathróga expect_out (X, tosú) agus expect_out (X, deireadh) i gcás go bhfuil X ina dhigit, le seasamh an fhostóra sa mhaolán. 0 le teaghráin a mheaitseáil leis an bpátrún ar fad agus déantar é a ghintear le haghaidh patrúin glob chomh maith le patrúin regexp. Mar shampla, má thugann próiseas aschur "abcdefgh \ n", toradh:

ag súil "cd"

mar a tharla na ráitis seo a leanas:

leagtha set_out (0, teaghrán) leagtha cd expect_out (buffer) abcd

agus fágtar "efgh \ n" sa mhaolán aschuir. Má tháirg an próiseas an t-aschur "abbbcabkkkka \ n", toradh:

ag súil -indices -re "b (b *). * (k +)"

mar a tharla na ráitis seo a leanas:

set set_out (0, start) 1 set expect_out (0, deireadh) 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, tosú) 10 leagtha expect_out (2, deireadh) 10 leagtha expect_out (2, teaghrán) k leagtha expect_out (buffer) abbbcabkkkk

agus fágtar "a \ n" sa mhaolán aschuir. Déanfaidh an patrún "*" (agus -re ". *") An maolán aschuir a fheabhsú gan aon aschur níos mó a léamh ón bpróiseas.

De ghnáth, déantar an t-aschur comhoiriúnaithe a scriosadh ó mhaoláin inmheánacha Ag súil. D'fhéadfaí cosc ​​a chur air seo trí phátrún a réamh-mhíniú leis an bratach an- aistrithe . Tá an bratach seo úsáideach go háirithe i dturgnamh (agus is féidir é a ghiorrú go "-not" le haghaidh áise agus iad ag tástáil).

Stóráiltear an idharc sceite a bhaineann leis an aschur meaitseála (nó eof nó full_buffer) in expect_out (spawn_id) .

Braitheann an bratach- amout go bhfuil an t-ordú ag súil leis an luach seo a leanas a úsáid mar thréimhse ama seachas úsáid a bhaint as luach an athróg ama.

De réir réamhshocraithe, déantar patrúin a mheaitseáil in aghaidh an aschuir ón bpróiseas atá ann faoi láthair, áfach, dearbhaíonn an bratach -i an t-aschur ón liosta spawn_id ainmnithe a mheaitseáil in aghaidh aon phatrúin seo a leanas (suas go dtí an chéad cheann eile). Ba chóir go mbeadh liosta spawn_id ina liosta de spás spáis ó spás spáis nó athróg a thagraíonn do liosta den sórt sin de spawn_ids.

Mar shampla, fanann an sampla seo a leanas le haghaidh "ceangailte" ón bpróiseas reatha, nó "gnóthach", "theip ar" nó "pasfhocal neamhbhailí" ón spawn_id ainmnithe ag $ proc2.

tá súil agam {-i $ proc2 gnóthach {cuireann gnóthach \ n; exp_continue} -re "theip ar do phasfhocal neamhbhailí" bac a chur ar am ar bith a d'eascair as ceangal}

Is féidir luach an athróg domhanda any_spawn_id a úsáid chun patrúin a mheaitseáil le haon spawn_ids a ainmnítear le gach bratach eile a bhfuil an t-ordú ag súil leo . Tá an spawn_id ó bhratach -i gan aon phhatrún comhlachaithe (ie, ina dhiaidh sin ag eile -i ) láithreach ar fáil d'aon phátrúin eile sa dóigh chéanna le hordú a bhaineann le any_spawn_id.

Féadfaidh an bratach -i athróg domhanda a ainmniú sa chás sin léitear an t-athróg le haghaidh liosta ids sceithe. Athraíodh an t-athróg nuair a athraíonn sé. Tugann sé seo bealach chun an fhoinse I / O a athrú cé go bhfuil an t-ordú i bhfeidhm. Tugtar ids sceitheadh ​​"indíreach" ar an mbealach seo.

Bíonn gníomhartha ar nós briseadh agus leanúint ar aghaidh mar gheall ar struchtúir rialaithe (ie, le haghaidh proc ) a iompar ar an ngnáthbhealach. Ligeann an exp_continue orduithe ag súil go leanfaidh sé de bheith ag feidhmiú seachas ag filleadh mar a bheadh ​​sé de ghnáth.

Tá sé seo úsáideach le lúbtaí follasacha a sheachaint nó ráitis a bheith ag súil arís. Tá an sampla seo a leanas mar chuid de bhreasc chun rlogin a uathoibriú. Sábhálann an exp_continue go gcaithfidh sé an dara ráiteas a bheith ag súil leis (chun an pras a lorg arís) má chuireann an rlogin le phasfhocal.

bí ag faire {Pasfhocal: {stty -echo send_user '] (ar $ úsáideoir) ar $ óstach: "expect_user -re" (. *) \ n "send_user" \ n "seol" $ expect_out (1, string) \ r "stty echo exp_continue} mícheart {send_user "phasfhocal nó cuntas neamhbhailí \ n" scoir} sceideal ama {send_user "go $ host uainithe \ n" exit} theip {send_user \ "nasc chuig an óstáil theip: $ expect_out (buffer)" exit} - ath $ pras}

Mar shampla, d'fhéadfadh an rannóg seo a leanas cabhrú le treoir úsáideora idirghníomhaíocht atá uathoibrithe go hiomlán cheana féin. Sa chás seo, cuirtear an críochfort i mód amh. Má brúigh an t-úsáideoir "+", tá athróg incriminte. Má tá brúitear "p", cuirtear roinnt tuairisceán chuig an bpróiseas, b'fhéidir é a chur ar bhealach éigin, agus ligeann "i" an t-úsáideoir idirghníomhú leis an bpróiseas, agus é ag stealladh rialú ón script. I ngach cás, cuireann an exp_continue ar chumas na reatha leanúint ar aghaidh le meaitseáil patrún tar éis dó an gníomh reatha a dhéanamh.

stty amh -echo expect_after {-i $ user_spawn_id "p" {cuir "\ r \ r \ r"; exp_continue} "+" {incr foo; exp_continue} "i" {idirghníomhú; exp_continue} scoir "scoir"}

De réir réamhshocraithe, athshocraíonn an t-amchlár ama amach. Ní ath- thosnófar an t-amadóir, más rud é go dtugtar an bratach -continue_timer ar aghaidh.

expect_after [expect_args]
oibríonn sé go díreach leis an expect_before ach amháin más féidir patrúin a bheith ag súil leis agus ag súil leis an mbeirt a bheith ag súil leis, úsáidfear an patrún atá ag súil leis . Féach an t-ordú expect_before le haghaidh tuilleadh eolais.

expect_background [expect_args]
na hargóintí céanna a bhfuiltear ag súil leo , áfach, filleann sé láithreach. Déantar patrúin a thástáil nuair a thagann ionchur nua. Níl an t- am agus an réamhshocrú patrún gan brí a bheith ag súil leis an gcúllach agus déantar iad a scriosadh go ciúin. Seachas sin, úsáideann an t-ordú expect_background expect_before agus patrúin expect expectation díreach mar a bheith ag súil leis .

Nuair a dhéantar measúnú ar ghníomhartha expect_background , tá bac ar phróiseáil chúlra don id sceitheadh ​​céanna. Déantar próiseáil chúlra a dhíbailt nuair a chríochnaíonn an gníomh. Cé go gcuirtear bac ar phróiseáil chúlra, is féidir a dhéanamh (tulra) a bheith ag súil leis an id sceitheadh ​​céanna.

Níl sé indéanta a bheith ag súil le linn a bheith ag súil le dífhostáil . Scriosann expect_background le haghaidh sceitheadh ​​ar leith ag dearbhú expect_background nua leis an id sceitheadh ​​céanna. Nuair a dhearbhaíonn expect_background gan aon phátrún, baintear an scéala a thugtar as an gcumas chun patrúin a mheaitseáil sa chúlra.

expect_before [expect_args]
na hargóintí céanna a bhfuiltear ag súil leo , áfach, filleann sé láithreach. Tá péirí patrúin -ghníomhaíochta ón dáta is déanaí ag súil leis roimh an gcéanna idéalach céanna a chur isteach go hintuigthe d'aon cheann a leanas ag súil le horduithe. Má thagann patrún le chéile, déileálfar leis amhail is dá mba rud é go raibh sé sonraithe sa ordú a bhí ag súil leis féin, agus go gcuirfí an comhlacht gaolmhar i gcrích i gcomhthéacs an orduithe ag súil leis . Más féidir patrúin a bheith ag súil leis an mbeirt a bhfuil súil acu roimh ré agus ag súil leis, úsáidtear an patrún expect_before .

Mura bhfuil aon phátrún sonraithe, ní dhéantar an id sceitheadh ​​a sheiceáil le haghaidh aon phátrúin.

Mura ndéanann bratach -i é a thrasnú , comhoirfidh patrún expect_before i gcoinne an id sceitheadh ​​a shainmhínítear ag an am a ndearnadh an t-ordú expect_before a fhorghníomhú (ní nuair a mheastar a patrún).

Is cúis leis an bhratach seo a bheith ag súil leis na sonraíochtaí reatha ar na patrúin a mheaitseálfaidh sé a thabhairt ar ais. De réir réamhshocraithe, tuairiscíonn sé ar an id sceite reatha. Is féidir sainchineál idirdhealaithe roghnach a thabhairt le haghaidh faisnéise ar an id sceitheadh ​​sin. Mar shampla

expect_before -info -i $ proc

Is féidir a thabhairt don chuid is mó de shaincheist id sceitheadh ​​amháin. Braitheann an bratach -indirect ids sceitheadh ​​díreach a thagann ó shonraíochtaí indíreach amháin.

In ionad sonraíocht id sceithe, cuirfidh an bratach "-all" faoi deara "-info" le tuairisciú ar gach ids sceithe.

Is féidir aschur an bhratach -info a athúsáid mar an argóint a bheith ag súil le roimh ré.

expect_tty [expect_args]
cosúil le bheith ag súil ach léann sé carachtair ó / dev / tty (ie eochaircheisteanna ón úsáideoir). De réir réamhshocraithe, déantar an léitheoireacht i mód bruite. Dá bhrí sin, ní mór do línte deireadh le tuairisceán d'fhonn a bheith ag súil leo iad a fheiceáil. D'fhéadfaí é seo a athrú trí stty (féach an t-ordú stty thíos).

expect_user [expect_args]
cosúil le bheith ag súil ach léann sé carachtair ó stdin (ie keystrokes ón úsáideoir). De réir réamhshocraithe, déantar an léitheoireacht i mód bruite. Dá bhrí sin, ní mór do línte deireadh le tuairisceán d'fhonn a bheith ag súil leo iad a fheiceáil. D'fhéadfaí é seo a athrú trí stty (féach an t-ordú stty thíos).

forc
cruthaíonn sé próiseas nua. Is cóip chruinn den phróiseas atá ann faoi láthair an próiseas nua . Ar rath, filleann forc 0 leis an bpróiseas nua (leanbh) agus tugann sé tuairisceán próisis an pháiste ar ais chuig an bpróiseas tuismitheora. Ar mhainneachtain (de bharr easpa acmhainní, m.sh., babhtáil, cuimhne), tugann forc -1 leis an bpróiseas tuismitheora, agus ní chruthaítear aon phróiseas leanaí.

Fágann próisis forked tríd an ordú scoir , díreach cosúil leis an bpróiseas bunaidh. Tá cead ag próisis forked scríobh chuig na comhaid logála. Mura ndéanann tú dífhabhtú nó logáil isteach sa chuid is mó de na próisis, is féidir leis an toradh a bheith mearbhall.

Is féidir le roinnt léitheoirí agus scríbhneoirí iomadúla a dhéanamh ar roinnt de na feidhmiúcháin pty, fiú go tráthúil. Dá bhrí sin, is é an bealach is sábháilte do na forc roimh na próisis sceite.

idirghníomhú [string1 body1] ... [teaghrán [bodyn]]
tugann sé rialú don phróiseas reatha don úsáideoir, ionas go gcuirtear eochaircheisteanna chuig an bpróiseas atá ann faoi láthair, agus cuirtear stdout agus stderr an phróisis reatha ar ais.

Is féidir péirí teanga-choirp a shonrú mar argóintí, agus sa chás sin déantar an comhlacht a fhorghníomhú nuair a chuirtear an teaghrán comhfhreagrach isteach. (De réir réamhshocraithe, ní chuirtear an teaghrán chuig an bpróiseas reatha.) Glactar leis an gceannas ateangaire , má tá an comhlacht deiridh ar iarraidh.

Má bhíonn níos mó ná líne amháin ag teastáil ó na hargóintí don ráiteas idirghníomhaíochta ar fad, d'fhéadfaí na hagóintí go léir a "bhriseadh" i gceann ionas go seachnófar deireadh a chur le gach líne le cúlra. Sa chás seo amháin, beidh na hiontrálacha Tcl is gnách ar siúl in ainneoin na braille.

Mar shampla, ritheann an t-ordú seo a leanas idirghníomhú leis na péirí teaghrán comhlacht seo a leanas a shainmhínítear: Nuair a chuirtear brúite ar Z, táthar ag súil go bhfuil sé ar fionraí. ( Athraíonn an bratach- seasta na modhanna críochfoirt.) Nuair a bhíonn brúite ag A, feiceann an t-úsáideoir "clóscríobh tú rialú-A" agus cuirtear an t-iarratas ar A. Nuair a chuirtear $ brúite, feiceann an t-úsáideoir an dáta. Nuair a bhíonn brúite ag C, Suí ag súil leis . Má tá "foo" curtha isteach, feiceann an t-úsáideoir "barra". Nuair a bhíonn ~~ brúite, ritheann an t-ateangaire ag súil go hidirghníomhach.

socraigh CTRLZ \ 032 {-eset $ CTRLZ {exec kill -STOP [pid]} \ 001 {send_user "clóscríobh tú rialú-A \ n"; seol "\ 001"} $ {send_user "Is é an dáta [formáid clog [soicind clog]]"} \ 003 exit foo {send_user "bar"} ~~}

I mbeirteanna sraithe comhlacht, déantar na teaghráin a mhacasamhlú san ordú go bhfuil siad liostaithe mar argóintí. Ní dhéantar teaghráin a mheaitseáil go páirteach leis an bpróiseas atá ann faoi láthair agus iad ag súil leis go mbeidh an chuid eile ag teacht. Má chuirtear carachtair isteach ionas nach féidir comórtas a bheith ann, ní dhéanfar ach an chuid den teaghrán a sheoladh chuig an bpróiseas nach féidir comórtas eile a thosú. Dá bhrí sin, is féidir na teaghráin a chuireann isteach ar na páirteanna páirtaimseartha a mheaitseáil ina dhiaidh sin, má mhainníonn na teaghráin bunaidh a bhí ag iarraidh a mheaitseáil sa deireadh.

De réir réamhshocraithe, tá meaitseáil teaghrán cruinn agus gan aon chártaí fiáin . (I gcodarsnacht leis sin, úsáideann an t-ordú ag súil go n-úsáideann patrúin glob-stíl de réir réamhshocraithe.) Féadfar an bratach -ex a úsáid chun patrúin a chosaint a d'fhéadfadh a bheith ag baint úsáide as bratacha idirghníomhú ó shlí eile. Ba chóir aon patrún a thosaíonn le "-" a chosaint ar an mbealach seo. (Tá gach teaghrán ag tosú le "-" in áirithe do roghanna sa todhchaí.)

Bíonn an-bratach ar an sreang a léirmhíniú mar phhatrún stíl regexp. Sa chás seo, stóráiltear comharthaí comhoiriúnacha san athróg idirghníomhach agus mar an gcéanna leis an mbealach a bhfuil súil ag siopaí a aschur sa expect_out athraitheach. Tugtar tacaíocht den chineál céanna leis an bratach -indices .

Tugann an patrún eof gníomh a fhorghníomhófar ar deireadh comhad. Féadfaidh patrún eof ar leithligh an bratach- úsáide a leanúint agus sa chás sin déantar é a mheaitseáil más rud é go bhfaightear eof le linn aschur a scríobh. Is é "an tuairisceán" an gníomh réamhghníomhach réamhshocraithe, ionas go n- idirghníomhaíonn sé ach tuairisceáin ar aon EOF.

Tugann an t- amshocrú patrún am- am (i soicindí) agus gníomh a fhorghníomhófar tar éis aon charachtair a léamh ar feadh tréimhse áirithe. Baineann an patrún ama ama leis an bpróiseas sonraithe is déanaí. Níl aon amchlár réamhshocraithe ann. Níl aon tionchar ag an athróg speisialta "timeout" (a úsáideann an t-ordú ag súil leis ) ar an am seo.

Mar shampla, d'fhéadfaí an ráiteas seo a leanas a úsáid chun úsáideoirí uathrialacha nach bhfuil clóscríofa ar bith ar feadh uair an chloig ach a fhaigheann teachtaireachtaí córas go minic fós:

idirghníomhaigh -input $ user_spawn_id timeout 3600 return -output \ $ spawn_id

Más é an patrún an t-eochairfhocal eochairfhocal, agus go gceadaítear null (tríd an ordú remove_nulls ), déantar an comhlacht comhfhreagrach a fhorghníomhú má tá ASCII amháin 0 comhoiriúnach. Ní féidir comhaid 0 bytes a mheaitseáil trí phátrúin glob nó regexp.

Is éard atá i gceist le patrún a chruthú leis an bratach- úsáideora an athraitheach interact_out (spawn_id) a shocrú ar an spawn_id a mhacasamhail an patrún (nó eof).

Bíonn gníomhartha ar nós briseadh agus leanúint ar aghaidh mar gheall ar struchtúir rialaithe (ie, le haghaidh proc ) a iompar ar an ngnáthbhealach. Mar sin féin, bíonn cúiseanna ar ais ag idirghníomhú chun filleadh ar an té atá ag glaoch orthu, agus cúiseanna inter_return ag idirghníomhú chun tuairisceán a chur ina luí . Mar shampla, má ghlaoigh "proc foo" idirghníomhú a rinne an gníomh idirghníomhú ansin, d' fhillfeadh sé foo . (Ciallaíonn sé seo go ndéanfaidh an t- ateangaire glaonna idirghníomhach clóscríobh go hidirghníomhach go gcuirfí ar aghaidh leis an idirghníomhú, agus cuirfidh inter_return an t-idirghníomhú ar ais chuig an té atá ag glaoch orthu).

Le linn idirghníomhaíochta , úsáidtear mód amh chun go bhféadfar gach carachtar a chur ar aghaidh chuig an bpróiseas reatha. Mura nglacann an próiseas reatha comharthaí rialaithe poist, stopfaidh sé má chuir sé comhartha stop (de réir réamhshocraithe ^ Z). Chun é a atosú, seol comhartha ar aghaidh (mar shampla "kill -CONT"). Más mian leat SIGSTOP a sheoladh chuig próiseas den sórt sin (faoi ^ Z), smaoineamh ar sceitheadh ​​sceite ar dtús agus ansin do chlár á rith. Ar an láimh eile, más mian leat SIGSTOP a sheoladh chun Ag súil leis féin, an t-ateangaire chéad ghlao (b'fhéidir trí charachtar éalaithe a úsáid), agus ansin brúigh ^ Z.

Is féidir péirí teanga-chomhlachta a úsáid mar phríosúnacht a sheachaint ionas go gcaithfidh siad an t-ateangaire a iontráil agus na horduithe a fheidhmiú go hidirghníomhach. Úsáidtear an modh críochfoirt roimhe seo agus an comhlacht de bheirt teaghrán comhlacht á chur i bhfeidhm.

Chun luas, déanfar gníomhartha a fhorghníomhú i mód amh de réir réamhshocraithe. Athraíonn an bratach- seasta an teirminéal go dtí an modh a bhí sé sula ndearnadh idirghníomhú (gan athrú, modh bruite). Tabhair faoi deara gur féidir go gcaillfí na carachtair a chuirtear isteach nuair a bhíonn an mód á athrú (gné trua den tiománaí críochfort ar roinnt córais). Is é an chúis amháin atá le húsáid -set ná má tá do ghníomhaíocht ag brath ar reáchtáil i mód bruite.

Cuireann an bhratach- eochair carachtair a mheaitseálann an patrún seo a leanas ar ais chuig an bpróiseas a ghintear de réir mar a léitear gach carachtar. D'fhéadfadh sé seo a bheith úsáideach nuair is gá don úsáideoir aiseolas a fháil ó na patrúin atá clóscríofa go páirteach.

Má tá rún ag baint le patrún ach má mhainníonn sé a mheaitseáil sa deireadh, cuirtear na carachtair chuig an bpróiseas sceite. Má bíonn an bpróiseas sceite ansin ag maíomh orthu, féachfaidh an t-úsáideoir na carachtair faoi dhó. -Is dócha gurb iomchuí ach amháin i gcásanna ina n-éireoidh an t-úsáideoir an patrún a chomhlánú. Mar shampla, is é an sliocht seo a leanas ó rftp, an script athfhillteach-ftp, áit a spreagtar an t-úsáideoir iontráil ~ g, ~ p, nó ~ l, chun an eolaire reatha a fháil, a chur, nó a liostáil go cúrsach. Tá siad seo chomh fada ar shiúl ó na gnáth-orduithe ftp, nach dócha go gcruthóidh an t-úsáideoir ~ rud ar bith eile ina dhiaidh sin, ach amháin go mearbhall, agus sa chás sin, is dócha go ndéanfaidh siad neamhaird ar an toradh ar aon nós.

idirghníomhú {-echo ~ g {getcurdirectory 1} -echo ~ l {getcurdirectory 0} -echo ~ p {putcurdirectory}}

Cuireann bratach -nobuffer carachtair a mheaitseálann an patrún seo a leanas leis an bpróiseas aschuir de réir mar a léitear na carachtair.

Tá sé seo úsáideach nuair is mian leat clár a ligean ar ais leis an bpatrún. Mar shampla, d'fhéadfaí an méid seo a leanas a úsáid chun monatóireacht a dhéanamh ar a bhfuil duine ag diailiú (modem stíl Hayes). Breathnaíonn an script an chuid eile den líne gach uair "atd".

lognumber proc {} {interact -nobuffer -re "(. *) \ r" tuairisceán cuireann $ log "[formáid clog [soicind clog]]: dialed $ interact_out (1, string)"} interact -nobuffer "atd" lognumber

Le linn idirghníomhaíochta , neamhairdtear úsáid roimhe seo log_user . Go háirithe, cuirfidh idirghníomhú ar a aschur a bheith logáilte (cuirfear chuig an aschur caighdeánach) toisc go bhfuil sé toimhdeach nach mian leis an úsáideoir idirghníomhú go dallmhar.

Ciallaíonn an bratach -o aon péirí eochair-chomhlachta seo a leanas le cur i bhfeidhm ar aschur an phróisis reatha. D'fhéadfadh sé seo a bheith úsáideach, mar shampla, nuair a dhéileálann sé le hóstach a sheoltar carachtair nach dteastaíonn le linn seisiún telnet.

De réir réamhshocraithe, braitheann idirghníomhú go bhfuil an t-úsáideoir ag scríobh stdin agus ag léamh an phróisis ag súil leis féin. Déanann an bhratach -u (le haghaidh "úsáideora") cuma idirghníomhach don úsáideoir mar phróiseas ainmnithe ag a argóint (ní mór idirdhealú a bheith aige).

Ligeann sé seo dhá phróiseas nach mbaineann le chéile a bheith le chéile gan lúb follasach a úsáid. Chun cabhrú le dífhabhtú, Measann diagnóisicí go dtéann tú i gcónaí (nó stdout le haghaidh faisnéis logála agus dífhabhálaithe áirithe). Ar an gcúis chéanna, léifeoidh an t-ordú ateangaire go hidirghníomhach ó stdin.

Mar shampla, cruthaíonn an bloc seo a leanas próiseas logála isteach. Ansin cuireann sé an t-úsáideoir ar fáil (ní thaispeántar), agus ar deireadh, nascann sé an dá chéile. Ar ndóigh, is féidir aon phróiseas a chur in ionad logáil isteach. Ligfeadh blaosc, mar shampla, don úsáideoir oibriú gan cuntas agus focal faire a sholáthar.

sceitheadh ​​logáil isteach socraigh logáil isteach $ spawn_id spawn tip modem # dhiailiú siar don úsáideoir # ceangal úsáideora logáil isteach idirghníomhú -u $ logáil isteach

Chun aschur a sheoladh chuig próisis éagsúla, liostaigh gach liosta id sceitheoireachta réamhrá ag bratach- úsáide . Is féidir le hionchur do ghrúpa ids sceite aschuir a chinneadh ag liosta id sceitheoireachta réamhráite ag bratach -input . (Is féidir go n-áirítear liostaí agus cumarsáid araon liostaí san fhoirm chéanna leis an mbratach -i san ordú ag súil leis , ach amháin nach bhfuil any_spawn_id bríomhar idirghníomhú .) Baineann na bratacha agus na teaghráin seo a leanas (nó patrúin) leis an ionchur seo go dtí ceann eile - bratach ionchuir le feiceáil. Mura dealraíonn aon -chur , ciallaíonn -output "-input $ user_spawn_id -output". (Ar an gcaoi chéanna, le patrúin nach bhfuil -input .) Má tá aonchur amháin sonraithe, maireann sé $ user_spawn_id. Má tá an dara- ionchur sonraithe, sábhálann sé $ spawn_id. Féadfar bratacha ionchuir breise a shonrú.

Níor mhainnigh an dá phróiseas ionchuir intuigthe a n-aschuir a shonraítear mar $ spawn_id agus $ user_spawn_id (ar ais). Má tá bratach -input le feiceáil gan aon bhratach neamhchláraithe , déantar carachtair ón bpróiseas sin a scriosadh.

Tugann an bhratach -i athsholáthar don spawn_id reatha nuair nach n - úsáidtear aon bhratach-inchurtha nó buntáistí eile. Tuigeann bratach -i bratach -o.

Is féidir na próisis atá á n-idirghníomhú a athrú trí úsáid a bhaint as idirdhealú sceite indíreach. (Déantar cur síos ar ids sceite indíreach sa rannóg ar an ordú a bhfuiltear ag súil leo). Féadfar ids sceitheadh ​​neamhdhíreach a shonrú le bratacha -i, -u, -input, nó -output.

ateangaire [args]
mar gheall ar spreagadh idirghníomhach ar an úsáideoir d'orduithe Ag súil agus Tcl. Tá toradh gach ordú clóite.

Bíonn gníomhartha ar nós briseadh agus leanúint ar aghaidh mar gheall ar struchtúir rialaithe (ie, le haghaidh proc ) a iompar ar an ngnáthbhealach. Mar sin féin, cuireann tuairisceán cúis ar an ateangaire chun filleadh ar a glaoiteoir, agus is cúis leis an ateangaire a chuireann cúis ar ais chuig an té atá ag glaoch air. Mar shampla, dá ngairmfí "proc foo" ateangaire a rinne an gníomh idir_return , d'fhillfeadh sé. Déanann aon ordú eile cúis leis an ateangaire leanúint ar aghaidh ag tabhairt aire do orduithe nua.

De réir réamhshocraithe, tá dhá slánuimhir sa pras. Déanann an chéad slánuimhir cur síos ar dhoimhneacht an chairn meastóireachta (.i., Cé mhéad uair a thugtar Tcl_Eval ar a dtugtar). Is é an dara slánuimhir an t-aitheantóir stair Tcl. Is féidir an pras a shocrú trí nós imeachta a dtugtar "prompt1" a shainmhíniú a bhfuil a luach fillte mar an chéad phras eile. Má tá tuairimí oscailte, parens, braces nó lúibíní ag ráiteas, eisítear pras tánaisteach (de réir réamhshocraithe "+>" ar líne nua). Féadfar an pras tánaisteach a shocrú trí nós imeachta a dtugtar "prompt2" a shainmhíniú.

Le linn ateangaire , úsáidtear modh bruite, fiú má bhí an té atá ag glaoch ag baint úsáide as an modh amh.

Má tá stdin dúnta, filleann an ateangaire mura rud é go n-úsáidtear an bhratach, agus sa chás sin déantar an argóint ina dhiaidh sin a chur i bhfeidhm.

log_file [args] [[-a] comhad]
Má chuirtear ainm comhaid ar fáil, taifeadfaidh log_file athscríbhinn den seisiún (ag tosú ag an bpointe sin) sa chomhad. Stop log_file stop a thaifeadadh mura dtugtar aon argóint. Tá aon chomhad logála roimhe seo dúnta.

In áit ainm comhaid, féadfar aitheantóir comhad Tcl a sholáthar trí na bratacha -open-aveaveopen a úsáid. Tá sé seo cosúil leis an ordú sceite . (Féach sceitheadh le haghaidh tuilleadh eolais.)

Ní mór an t - aschur - bratach a logáil go raibh an t-ordú log_user faoi ​​chois.

De réir réamhshocraithe, cuireann an t-ordú log_file chuig seanchomhaid seachas iad a thoscaireacht , ar mhaithe leis an áisiúlacht a bheith in ann dul ar logáil amach agus go minic i seisiún amháin. Chun comhaid teasctha, bain úsáid as an bratach- neamhbheartaithe .

Is é an bratach- phóca a dhéanann log_file tuairisc a thabhairt ar ais ar na hargóintí neamh-eolais is déanaí a tugadh.

log_user -info | 0 | 1
De réir réamhshocraithe, logáiltear / ag súil go bhfuil an dialóg logáilte go stdout (agus logchláir más oscailte). Tá an logáil isteach go stdout faoi mhíchumas ag an gceannas "log_user 0" agus athshuiteáil "log_user 1". Níl athrú ar logáil isteach sa logchomhad.

Is éard atá i mbratach an iarnóra log_user tuairisc a thabhairt ar ais ar na hargóintí neamh-eolais is déanaí a tugadh.

match_max [-d] [-i spawn_id] [méid]
Sainmhíníonn méid an maoláin (i bytes) a úsáidtear go hinmheánach trína bheith ag súil leis . Gan aon argóint mhéid , cuirtear an méid reatha ar ais.

Leis an bhratach -d , socraítear an méid réamhshocraithe. (Is é 2000 an t-réamhshocrú tosaigh.) Leis an mbratach -i , tá an méid leagtha síos don id sceite ainmnithe, ar shlí eile tá sé leagtha síos don phróiseas reatha.

forleagan [- # spawn_id] [- # spawn_id] [...] clár [args]
" args clár " a chur i bhfeidhm in ionad an chláir Ag súil reatha, a chríochnaíonn. Déanann argóint lomáinín lomadh le héadán os comhair ainm an orduithe amhail is dá mba bhlaosc logála isteach é. Tá gach spawn_ids dúnta ach amháin dóibh siúd atá ainmnithe mar argóintí. Déantar iad seo a mhapáil ar na haitheantóirí comhad ainmnithe.

Déantar Spawn_ids a mhapáil chun aitheantóirí a chomhadú don chlár nua chun hoidhreacht a fháil. Mar shampla, ritheann an líne seo a leanas fichille agus ceadaíonn sé a bheith á rialú ag an bpróiseas reatha - rá, máistir ficheall.

overlay -0 $ spawn_id -1 $ spawn_id -2 $ spawn_id chess

Tá sé seo níos éifeachtaí ná "interact -u", áfach, íobairt sé an cumas idirghníomhú cláraithe a dhéanamh ós rud é nach bhfuil an próiseas ag súil le smacht a thuilleadh.

Tabhair faoi deara nach soláthraítear aon chríochfort rialaithe. Dá bhrí sin, má dhiúltóidh tú nó má chuireann tú isteach ionchur caighdeánach, ní bheidh cláir a dhéanann rialú poist (sliogáin, logáil isteach, srl) i gceart.

parity [-d] [-i spawn_id] [luach]
sainmhínithe ar cheart coimhseacht a choinneáil nó a bhaint as aschur próisis sceite. Más rud é go bhfuil luach nialasach, déantar comhréireacht a scaoileadh, ar shlí eile ní dhéantar é a dhíbirt. Gan aon argóint luacha , cuirtear an luach reatha ar ais.

Leis an bhratach -d , socraítear an luach coibhneasta réamhshocraithe. (Is é 1 an chéad réamhshocraithe, is é sin, níl an comhionannas á scriosadh.) Leis an mbratach -i , socraítear an luach paireacht don id sceithe ainmnithe, nó is é an próiseas atá ann faoi láthair.

remove_nulls [-d] [-i spawn_id] [luach]
sainmhínítear an gcoinnítear nó nach mbaintear úsáid as neamhspleácha as aschur próisis sceite sula ndéantar meaitseáil patrún nó a stóráil san athróg expect_outinteract_out . Má tá luach 1, cuirtear nulls as oifig. Má tá luach 0, ní bhfaightear nulls. Gan aon argóint luacha , cuirtear an luach reatha ar ais.

Leis an bhratach -d , socraítear an luach réamhshocraithe. (Is é 1 an chéad réamhshocraithe, is é sin, cuirtear nulls as.) Leis an bhratach -i , socraítear an luach don idharc ainmnithe sceite, ar shlí eile tá sé leagtha síos don phróiseas reatha.

Cibé an bhfuil nó nach n-eascraíonn nó nach n-eascraíonn, Measfaidh sé go n-éireoidh sé nótaí neamhspleách ar an logáil isteach agus ar stdout.

seol [-flags] teaghrán
Seoltar teaghrán chuig an bpróiseas reatha. Mar shampla, an t-ordú

cuir "hello world \ r"

Cuireann na carachtair, helloworld leis an bpróiseas reatha. (Cuimsíonn Tcl ordú printf -like ( formáid ar a dtugtar) a fhéadfaidh teaghráin chasta casta a thógáil.)

Seoltar carachtair láithreach cé nach léifear cláir le hionchur buanfhoirmeach líne na carachtair go dtí go gcuirfear carachtar tuairisceán ar aghaidh. Ainmnítear carachtar tuairisceáin "\ r".

Déanann an bratach an chéad argóint eile a thuiscint mar shreang seachas bratach. Is féidir "-" a thabhairt roimh aon sreang cibé acu is cosúil le bratach é nó í i ndáiríre. Soláthraíonn sé seo meicníocht iontaofa chun teaghráin athróg a shonrú gan iad siúd a bhfuil bratacha cosúil le taisme orthu a thiomáint. (Tá gach teaghrán ag tosú le "-" in áirithe do roghanna sa todhchaí.)

Dearbhaíonn an bratach -i go gcuirfear an teaghrán chuig an spawn_id ainmnithe. Más rud é an spawn_id is user_spawn_id , agus tá an críochfort i mód amh, aistrítear línelínte nua chun sraitheanna nua-líne a chur ar ais ionas go mbeidh siad cosúil go mbeadh an críochfort i mód bruite. Níl an bratach seo in ann an aistriúchán seo a dhiúltú.

Cuireann an bratach- neamh carachtair null (0 bytes). De réir réamhshocraithe, seoltar ceann amháin. Is féidir le slánuimhir leanúint ar aghaidh leis an méid seo a léiriú cé mhéad duine atá le seoladh.

Gineann an bhratach-briseadh riocht sos. Ní dhéanann sé seo ciall ach amháin má thagraíonn an id sceitheadh ​​le gléas tty a osclaíodh trí "sceitheadh". Má tá próiseas déanta agat , mar shampla barr, ba chóir duit coinbhinsiún na dtús a úsáid chun sos a ghiniúint.

Ní mór an t-aschur bratach -s a sheoladh "go mall", rud a sheachaint an coitianta i gcás ina ndéanfadh ríomhaire ríomhaire maolán ionchuir a bhí deartha le haghaidh duine nach ndéanfadh an maolán céanna as an méid sin riamh. Tá an t-aschur seo faoi rialú ag luach an athróg "send_slow" a ghlacann liosta dhá eilimintí. Is éard atá sa chéad ghné ná slánuimhir a chuireann síos ar líon na bytes chun a sheoladh go adamhach. Is é an dara eilimint ná líon fíor a chuireann síos ar líon na soicind a gcaithfidh na seolta adamhach a bheith scartha. Mar shampla, "chuir seol send_slow {10 .001}" ar chumas "seoltaí" a sheoladh chun teaghráin a sheoladh le 1 milliseag idir gach 10 carachtar a cuireadh isteach.

An t-aschur bratach -h a sheoladh (beagán) cosúil le duine a chlóscríobh i ndáiríre. Feictear moilleanna cosúil le daonna idir na carachtair. (Tá an algartam bunaithe ar dháileadh Weibull, le modhnuithe a oireann don iarratas áirithe seo.) Tá an t-aschur seo faoi rialú ag luach an athróg "send_human" a ghlacann liosta cúig eilimintí. Is é an chéad dá ghné an t-am meán interarrival de na carachtair i soicindí. Úsáidtear an chéad cheann de réir réamhshocraithe. Úsáidtear an dara ceann ag deireadhchláir focail, chun na sosanna subtle a tharlaíonn ó am go ham ag aistrithe den sórt sin a insamhail. Is é an tríúiméadar an beart d'éagsúlacht nuair atá .1 athraitheach go leor, tá 1 athraitheach go réasúnta, agus tá 10 éagsúil go leor. Tá na foircinní 0 go neamhtheoranta. Is é an dá pharaiméadar deireanach, faoi seach, am íosta agus uasmhéid idirghabhálach. Úsáidtear an t-íosmhéid agus an t-uasmhéid is déanaí agus "gearrthóg" an t-am deiridh. Is féidir an meán deiridh a bheith go leor difriúil ón meán ar leith má tá go leor luachanna ag an ghearrthóg íosta agus uasmhéid.

Mar shampla, eiseoidh an t-ordú seo a leanas clóscríobhaí tapa agus comhsheasmhach:

set set_human {.1 .3 1 .05 2} seol -h "Tá ocras orm. Déanaimid lón."

cé go bhféadfadh an méid seo a leanas a bheith níos oiriúnaí tar éis briseadh:

set set_human {.4 .4 .2 .5 100} seol -h "Oíche lash páirtí Goodd!"

Tabhair faoi deara nár insamhladh earráidí, cé gur féidir leat suímh ceartúcháin earráide a chur ar bun duit féin trí botúin agus ceartúcháin a ionchorprú i argóint a sheoladh.

Tá na bratacha chun carachtair neamhní a sheoladh, chun sosanna a sheoladh, aschur mall a fhorchur agus aschur stíl an duine eisiatach. Ní dhéanfar ach an ceann a bheidh sonraithe a úsáid a úsáid. Ina theannta sin, ní féidir aon argóint teaghrán a shonrú leis na bratacha le haghaidh carachtair nó sosanna neamhní a sheoladh.

Is dea-smaoineamh é a bheith ag súil leis an gcéad seol chuig próiseas ag súil leis . beidh súil ag fanacht leis an bpróiseas tosú, cé nach féidir a sheoladh . Go háirithe, má chríochnaíonn an chéad sheoladh sula dtosaíonn an próiseas ag rith, ritheann tú an baol go gcuirfear neamhaird ar do chuid sonraí. I gcásanna nach dtugann na cláir idirghníomhacha aon pras tosaigh, is féidir leat dul i ngleic le moill mar atá i:

# Chun a sheachaint nach dtugann na hackers leideanna ar conas a bhriseadh isteach, ní chuireann an córas seo prasfhocal seachtrach ar fáil. # Fan ar feadh 5 soicind le haghaidh exec a chríochnú telnet telnet very.secure.gov sleep 5 pasfhocal a sheoladh \ r

Is é alias exp_send a sheoladh. Má tá tú ag baint úsáide as Ag súil nó le haon rogha eile de Ag súil sa timpeallacht Tk, déantar an seol a shainiú ag Tk chun críche éagsúla. cuirtear exp_send ar fáil maidir le comhoiriúnacht idir timpeallachtaí. Cuirtear alias den chineál céanna ar fáil d'orduithe eile a bhfuiltear ag súil leo.

send_error [-flags] teaghrán
cosúil le seoltaí , ach amháin go gcuirtear an t-aschur go stderr seachas an próiseas reatha.

send_log [-] teaghrán
cosúil le seol , ach amháin nach gcuirtear an teaghrán ach chuig an gcomhad logála (féach log_file .) Déantar neamhaird ar na hargóintí mura bhfuil comhad logála ar oscailt.

send_tty [-flags] teaghrán
cosúil le seol , ach amháin go gcuirtear an t-aschur chuig / dev / tty seachas an próiseas reatha.

send_user [-flags] teaghrán
cosúil le seol , ach amháin go gcuirtear an t-aschur chuig stdout seachas an próiseas reatha.

soicind codlata
is cúis leis an script a chodladh don líon soicind a thugtar. D'fhéadfadh sé gur uimhir dheich dóigh a bheith ann. Bíonn próiseálacha isteach (agus imeachtaí Tk má tá tú ag baint úsáide as Ag súil) ag caint.

sceite [args] clár [args]
cruthaíonn sé próiseas nua ag rith " args clár ". Tá a stdin, stdout agus stderr ceangailte le Ag súil, ionas gur féidir iad a léamh agus a scríobh le horduithe Súil eile. Déantar an nasc a dhúnadh go dlúth nó má dhúnann an próiseas féin aon cheann de na haitheantóirí comhaid.

Nuair a thosaíonn próiseas ag sceitheadh , cuirtear síos ar an tuairisceoir spawn_id ar thuairisc a thagraíonn don phróiseas sin . Meastar gurb é an próiseas reatha an próiseas a thuairiscítear ag spawn_id . is féidir spawn_id a léamh nó a scríobh, i bhfeidhm ag soláthar rialú post.

Is athraitheach athraitheach í user_spawn_id ina bhfuil tuairiscí a thagraíonn don úsáideoir. Mar shampla, nuair a bheidh spawn_id leagtha síos ar an luach seo, bí ag súil go dtéann sé ar nós expect_user .

.Is é earráid_spawn_id athraitheach domhanda ina bhfuil tuairiscí a thagraíonn don earráid chaighdeánach. Mar shampla, nuair a bheidh spawn_id leagtha síos ar an luach seo, déan seoltaí cosúil le send_error .

Is tty_spawn_id athróg domhanda ina bhfuil tuairisceoir a thagraíonn do / dev / tty. Mura bhfuil / dev / tty ann (mar shampla i gcnaipe, ar, nó scripchraisc bhaisc), níl tty_spawn_id sainithe ansin. Is féidir tástáil a dhéanamh air seo mar:

más rud é {[info vars tty_spawn_id]} {# / dev / tty exists} eile {# / dev / tty nach bhfuil ann # is dócha i cron, bhaisc, nó ag script}

tuairisceáin sceitheadh an próiseas UNIX id. Mura ndéantar aon phróiseas a sceitheadh, tá 0 ar ais. Socraítear an t-ainm spawn_out (slave, name) d'ainm an ghléas daite pty.

De réir réamhshocraithe, macallaíonn sé an t-ainm orduithe agus na hargóintí. Stopann an bratach -noecho sceitheadh ó é seo a dhéanamh.

Ciallaíonn an bratach -console aschur consól a atreorú chuig an bpróiseas sceite. Ní thacaítear leis seo ar gach córas.

Go hinmheánach, úsáideann sceitheadh pty, tosaithe ar an mbealach céanna le tty an úsáideora. Cuirtear tús leis seo níos mó ionas go mbeidh na suímh uile "sane" (de réir stty (1)). Má tá an stty_init athraitheach sainmhínithe, déantar é a léiriú i stíl argóintí stty mar chumraíocht bhreise. Mar shampla, cuirfidh "set stty_init amh" faoi deara go mbeidh críochfoirt phróisis níos sceithe le tosú i mód amh. -notycopy skips an tús tosaigh bunaithe ar an tty an úsáideora. -nottyinit scips an tosaigh "sane".

De ghnáth ní thógann sceitheadh beagán ama chun é a fhorghníomhú. Má thugann tú faoi deara go bhfuil sciathán ama ag gabháil leis an sceitheadh, is dócha go dtéann sé le ptys atá ceangailte. Reáchtáiltear roinnt tástálacha ar ptys chun ionfhabhtuithe a sheachaint le próisis errant. (Glacann siad seo 10 soicind in aghaidh an pty gearrtha.) Rith Ag súil leis an rogha -d a thaispeáint más rud é go bhfuiltear ag súil go bhfuil go leor ptys i stáit eile. Mura féidir leat na próisis a mharú a bhfuil na ptys seo ceangailte, is féidir go dtiocfaidh an t-aon chaoi chun tú a atosaigh.

Más rud é nach féidir an clár a sceitheadh ​​go rathúil mar go mainneoidh exec (2) (m.sh. nuair nach bhfuil an clár ann), cuirfear an teachtaireacht earráide ar ais ag an gcéad dul síos idirghníomhachag súil leis mar is dá mba rud é go raibh an teachtaireacht earráide á reáchtáil agus á dtáirgeadh ag an gclár mar aschur. Is iarmhairt nádúrtha é an iompar seo maidir le cur i bhfeidhm sceitheadh . Go hinmheánach, forcanna sceite, agus níl aon bhealach ar bith ag an bpróiseas sceite cumarsáid a dhéanamh leis an bpróiseas bunaidh Ag súil ach amháin trí chumarsáid tríd an spawn_id.

Is éard atá sa bhratach -open an chéad argóint eile a léiriú mar aitheantóir comhad Tcl (.i., Ar ais trí oscailt .) Is féidir an t-ainm sceite a úsáid ansin amhail is dá mba phróiseas sceite. (Níor cheart an t-aitheantóir comhaid a úsáid a thuilleadh). Ligeann sé seo duit feistí amh, comhaid agus píblínte a chóireáil mar phróisis sceite gan py a úsáid. 0 a chur in iúl le fios nach bhfuil aon phróiseas gaolmhar ann . Nuair atá an ceangal leis an bpróiseas sceite dúnta, is é sin an t-aitheantóir comhad Tcl. Tá an bratach -leaveopen cosúil le -open ach amháin go bhfuil cúis- theaveopen ina chúis leis an aitheantóir comhaid a fhágáil ar oscailt fiú tar éis don id sceitheadh ​​dúnta.

Is cúis leis an bratach an tseirbhís a oscailt ach níor próiseáladh aon phróiseas . 0 a chur in iúl le fios nach bhfuil aon phróiseas gaolmhar ann . Socraítear Spawn_id mar is gnách.

Tá an spawn_out athraitheach (daor, fd) leagtha amach d'aitheantóir comhaid a fhreagraíonn don daor pty. Is féidir é a dhúnadh ag baint úsáide as "close -slave".

Ainmníonn an bratach -ignore comhartha le neamhaird a dhéanamh sa phróiseas sceite. Seachas sin, faigheann comharthaí an t-iompar réamhshocraithe. Ainmnítear comharthaí mar atá san ordú gaiste , ach amháin go n-éilíonn gach comhartha bratach ar leith.

leibhéal strace
is cúis leis na ráitis seo a leanas a phriontáil sula gcuirtear i bhfeidhm iad. (Athróga rianta ordú rianú Tcl.) Léiríonn an leibhéal cé chomh fada is atá i gcruach an ghlaoite. Mar shampla, ritheann an t-ordú seo a leanas Ag súil le linn na chéad 4 leibhéal glaonna a rianú, ach níl sé sin thíos.

ag súil - script "strace 4" script.exp

Braitheann an bratach-phóca strace chun tuairisc a thabhairt ar ais ar na hargóintí neamh-eolais is déanaí a tugadh.

args stty
athraíonn modhanna críochfoirt mar an gcéanna leis an ordú stty seachtrach.

De réir réamhshocraithe, tá rochtain ag an teirminéal rialaithe. Is féidir rochtain a fháil ar na críochfoirt eile trína chur isteach "Iarratais ar ais ar stádas mar thoradh ar an ordú. Mura n-iarrtar aon stádas agus go bhfuil rochtain ag an teirminéal rialaithe, tabharfar stádas roimhe seo na tréithe amh agus macalla ar ais i bhfoirm is féidir a bheith ina dhiaidh sin. a úsáideann an t-ordú.

Mar shampla, chuir na hargóintí amhcócaráilte an teirminéal isteach sa mhodh amh. Na hargóintí - cuirfidh nó cuirtear an críochfort isteach i mód cócaráilte. Faigheann na hargóintí macalla agus cuir an críochfort isteach ar macalla agus ar mhodh noecho faoi seach.

Léiríonn an sampla seo a leanas conas é a mhacasamhlú go sealadach. D'fhéadfaí é seo a úsáid i scripteanna eile-uathoibríoch chun pasfhocail a ionchorprú iontu. (Féach níos mó plé ar seo faoi LEITHÍNÍ EXPECT thíos.)

stty -echo send_user "Pasfhocal:" expect_user -re "(. *) \ n" socraigh pasfhocal $ expect_out (1, teaghrán) stty macalla

args córas
Tugann args go sh (1) mar ionchur, díreach amhail is dá mba rud é go raibh sé clóscríofa mar ordú ó chríochfort. Táthar ag súil go dtiocfaidh deireadh leis an bhlaosc. Déileálann an stádas tuairisceáin ó sh ar an mbealach céanna a láimhseálann exec a stádas fillte.

I gcodarsnacht leis an bpróiseas a athdhíríonn stdin agus stdout leis an script, ní dhéanann an córas aon athréchur (seachas an méid a léiríonn an teaghrán féin). Dá bhrí sin, is féidir cláir a úsáid a chaithfidh labhairt go díreach leis / dev / tty. Ar an gcúis chéanna, ní thaifeadtar torthaí an chórais sa logáil.

timestamp [args]
tuairisceán ama ama. Gan aon argóintí, cuirtear líon na soicind ón eise ar ais.

Tugann an bratach -format teaghrán a chuirtear ar ais ach rinneadh substaintí de réir na rialacha POSIX do strftime. Mar shampla, cuirtear ainm giorraithe lá seachtaine in ionad% a (ie, Sat). Tá daoine eile:

% ainm ghairme lá seachtaine% Ainm iomlán lá seachtaine% b ainm míosa giorraithe% B ainm iomlán na míosa% c dáta-ama mar atá i: Céad Deireadh Fómhair 6 11:45:56 1993% d lá na míosa (01-31% H uair an chloig (00-23)% I uair an chloig (01-12)% j lá (001-366)% m mí (01-12)% M nóiméad (00-59)% p am nó pm% S dara (00-61) % u lá (1-7, Dé Luain an chéad lá den tseachtain)% U seachtaine (00-53, an chéad Domhnach an chéad lá den tseachtain amháin)% V seachtaine (01-53, stíl ISO 8601)% w lá (0- 6)% Seachtain na huaire (00-53, an chéad Luan an chéad lá den tseachtain amháin)% x dáta ama mar atá i: Céad Deireadh Fómhair 6 1993% X mar a bhí: 23:59:59% sa bhliain (00-99) % Bliain mar atá i: 1993% Z limistéar teorann (nó rud ar bith mura bhfuil sé indéanta) %% comhartha lom faoin gcéad

Níl sainmhíniú ar shonraíochtaí% eile. Déanfar carachtair eile a rith trí neamhthuairiscí. Ní thacaítear ach an locale C.

Tugann an bratach- seicinní roinnt soicind isteach ós rud é an t-aic a úsáid mar fhoinse as a bhformáid. Seachas sin, úsáidtear an t-am atá ann faoi láthair.

Forbraíonn an bratach -gmt aschur ama ama chun an limistéar ama GMT a úsáid. Gan aon bhratach, úsáidtear an limistéar ama áitiúil.

gaiste [comhartha] comharthaí]
is cúis leis an ordú tugtha a fhorghníomhú nuair a fhaightear aon cheann de na comharthaí a thugtar amach anseo. Déantar an t-ordú a fhorghníomhú sa raon feidhme domhanda. Má tá an t-ordú as láthair, cuirfear an gníomh comhartha ar ais. Más é an t-ordú SIG_IGN an t-ordú , neamhairdtear na comharthaí. Más é an t-ordú SIG_DFL an t-ordú , déantar na comharthaí mar thoradh ar réamhshocraithe an chórais. Is comhartha amháin é nó comharthaí nó liosta comharthaí. Féadfar comharthaí a shonrú go huimhreach nó go siombalach de réir comhartha (3). Féadfar an réimír "SIG" a fhágáil ar lár.

Gan aon argóintí (nó an argóint - líon eile), cuireann an gaiste uimhir comhartha an ordaithe gaiste faoi láthair.

Úsáideann an bratach -code cód fillte an ordaithe in áit cibé cód a bhí ar tí Tcl a thabhairt ar ais nuair a thosaigh an t-ordú ag rith.

Is éard atá i gceist leis an bratach- pháirceála an t-ordú a mheas trí úsáid a bhaint as an ateangaire atá gníomhach ag an am a thosaigh an t-ordú ar siúl seachas nuair a dearbhaíodh an gaiste.

Is éard atá sa bhratach- ainm an t-ordú gaiste chun ainm comhartha an ordaithe gaiste a chur ar ais faoi láthair.

Is éard atá sa bhratach -max an t-ordú gaiste chun an uimhir comhartha is mó is féidir a shocrú.

Mar shampla, déanfaidh an t-ordú "trap {send_user" Ouch! "} SIGINT" a phriontáil "Ouch!" gach uair a brúigh an t-úsáideoir ^ C.

De réir réamhshocraithe, SIGINT (is féidir é a ghiniúint de ghnáth ag an cnaipe ^ C) agus SIGTERM a chur faoi deara Ag súil go scoirfidh tú. Tá sé seo mar gheall ar an gaiste seo a leanas, cruthaithe de réir réamhshocraithe nuair a thosaíonn Ag súil.

gaiste amach {SIGINT SIGTERM}

Má úsáideann tú an flag -D chun an dífhabhtóir a thosú, athshuitear SIGINT chun an dífhabhtóir idirghníomhach a thosú. Tá sé seo mar gheall ar an gaiste seo a leanas:

gaiste {exp_debug 1} SIGINT

Is féidir an gaiste dífhabhtóra a athrú tríd an athróg timpeallachta EXPECT_DEBUG_INIT a leagan síos chun ordú gaiste nua.

Is féidir leat, ar ndóigh, an dá cheann sin a shárú ach trí orduithe gaiste a chur ar do script. Go háirithe, má tá tú "SIGINT" fágála gaiste agat féin, déanfaidh sé seo an gaiste dífhabhtóra a mhaolú. Tá sé seo úsáideach má tá tú ag iarraidh cosc ​​a chur ar úsáideoirí an dífhabhtóir a fháil.

Más mian leat do gaiste féin a shainiú ar SIGINT ach fós gaiste don dífhabhtóir nuair atá sé ag rith, bain úsáid as:

más rud é {! [exp_debug]} {trap mystuff SIGINT}

De rogha air sin, is féidir leat teacht ar an dífhabhtóir ag baint úsáide as comhartha eile.

ní ligfidh an gaiste duit an gníomh a shárú ar SIGALRM mar go n-úsáidtear é go hinmheánach chun Ag súil leis . Leagann an t-ordú dícheangailte SIGALRM go SIG_IGN (neamhaird). Is féidir leat é seo a athshuíomh chomh fada agus a dhíchumasú tú é le linn orduithe sceitheadh ​​ina dhiaidh sin.

Féach comhartha (3) le haghaidh tuilleadh eolais.

fan [args]
moilleanna go dtí go dtarlaíonn deireadh le próiseas sceite (nó an próiseas atá ann faoi láthair mura bhfuil aon cheann).

Freastalaíonn ar ais liosta de cheithre slánuimhir de ghnáth. Is é an chéad slánuimhir ná an próiseas a bhí ar feitheamh. Is é an dara slánuimhir an id sceitheann comhfhreagrach. Is é an tríú slánuimhir -1 má tharla earráid an chórais oibriúcháin, nó 0 ar shlí eile. Más 0 a bhí an tríú slánuimhir, is é an ceathrú slánuimhir an stádas a d'fhill an próiseas sceite. Más rud é go raibh an tríú slánuimhir -1, is é an ceathrú slánuimhir an luach errno atá leagtha síos ag an gcóras oibriúcháin. Tá an earráid athraitheach athraitheach domhanda leagtha síos freisin.

Féadfaidh eilimintí breise a bheith le feiceáil ag deireadh an luach tuairisceáin ó fan . Aithníonn cúig eilimint roghnach aicme faisnéise. Faoi láthair, is é CHILDKILLED an t-aon luach is féidir don ghné seo agus sa chás sin is é an dá luachanna eile an t-ainm comhartha stíl C agus cur síos gairid téacsúil.

Dearbhaíonn an bratach -i an próiseas chun fanacht go comhfhreagrach leis an spawn_id ainmnithe (NACH an próiseas id). Taobh istigh de láimhseálaí SIGCHLD, is féidir fanacht le haghaidh aon phróiseas sceite trí úsáid a bhaint as an idéalaithe sceite -1.

Is é an bratach an- aire ná go bhfanfaidh sé go fóill chun filleadh ar ais láithreach le fios go bhfuil fan rathúil ann. Nuair a théann an próiseas amach (ina dhiaidh sin), beidh sé imithe go huathoibríoch gan an gá le fanacht follasach.

Is féidir an t-ordú fan a úsáid freisin le haghaidh próiseas forked ag baint úsáide as na hargóintí "-i -1". Murab ionann agus a úsáid le próisis sceite, is féidir an t-ordú seo a fhorghníomhú tráth ar bith. Níl aon smacht ar an bpróiseas atá á mbainistiú. Mar sin féin, is féidir an luach tuairisceáin a sheiceáil le haghaidh an id próiseála .

LEABHARLANN

Tá súil go huathoibríoch faoi dhá leabharlann tógtha i gcomhair scripteanna Ag súil. Déantar iad seo a shainiú ag na heolairí atá ainmnithe sna hathróga exp_library agus exp_exec_library. Tá sé i gceist go mbeadh comhaid fóntais ann araon is féidir a úsáid le scripteanna eile.

Tá comhaid neamhspleácha ailtireachta ag exp_library. Tá comhaid ag brath ar ailtireacht ag exp_exec_library. Ag brath ar do chóras, féadfaidh an dá eolairí a bheith folamh go hiomlán. Má chuireann an comhad $ exp_exec_library / cat-buffers síos go bhfuil do buffers / bin / cat de réir réamhshocraithe.

PRÍOMH-CHRÍOMH

Tá sainmhíniú daor ar fáil le haghaidh scripteanna ag súil go leor-priontála. Ag glacadh leis go bhfuil an sainmhíniú fírinne a sholáthraítear leis an dáileadh Ag súil suiteáilte i gceart, is féidir leat é a úsáid mar:

eagarthóir-comhad

SAMPLAÍ

Ní léir go bhfuil sé soiléir conas gach rud a chur le chéile a chuireann síos ar leathanach an duine . Spreag mé duit na samplaí a léamh agus a úsáid sa eolaire sampla den dáileadh Ag súil . Tá cuid acu cláir fíor. Ní léiríonn daoine eile ach teicnící áirithe, agus, ar ndóigh, níl ach cúpla tapaidh ach cúpla. Tá forbhreathnú tapa ar an gclár INSTALL ar na cláir seo.

Tá na páipéir ag súil (féach SEE ALSO) úsáideach freisin. Cé go n-úsáideann roinnt páipéir comhréir a fhreagraíonn do na leaganacha níos luaithe de Ag súil, tá na réasúnacha a ghabhann leis fós bailí agus téigh i bhfad níos mó sonraí ná an leathanach seo.

TORTHAÍ

Is féidir le heisínteanna coimhlint a dhéanamh le hainmneacha ordú ag súil. Mar shampla, sainmhíníonn Tk seol chun críche éagsúla. Ar an gcúis seo, tá an chuid is mó de na horduithe Ag súil ar fáil freisin mar "exp_XXXX". Níl aliases ag na horduithe agus na hathróga atá ag tosú le "exp", "inter", "sceitheadh", agus "timeout". Bain úsáid as na hainmneacha ordú leathnaithe más gá an comhoiriúnacht seo idir timpeallachtaí.

Táthar ag súil go dtéann dearcadh liobrálacha ar scópáil. Go háirithe, déanfar athróga a léamh le horduithe a bhaineann go sonrach leis an gclár Ag súil a fháil ón gcéadcheantar áitiúil, agus más rud é nach bhfuarthas, sa raon feidhme domhanda. Mar shampla, cuireann sé seo bac ar an ngá "tréimhse ama domhanda" a chur i ngach nós imeachta a scríobhann tú a bhfuiltear ag súil leis na húsáidí sin. Ar an láimh eile, tá athróga scríofa i gcónaí i raon feidhme áitiúil (mura n-eisíodh ordú "domhanda"). Is é an fhadhb is coitianta ná seo nuair a dhéantar sceitheadh ​​i nós imeachta. Lasmuigh den nós imeachta, níl spawn_id ann, mar sin níl rochtain ar fáil ar an bpróiseas sceite ach amháin mar gheall ar scópáil. Cuir "spawn_id domhanda" le nós imeachta den sórt sin.

Mura féidir leat an cumas multispawning a chumasú (is é sin, ní thacaíonn do chóras ná (BSD *. *), Vótaíocht (SVR> 2), ná rud éigin coibhéiseach), ní bheidh sé in ann ach próiseas aonair a rialú ag an am. Sa chás seo, ná déan iarracht spawn_id a shocrú, ná ba cheart duit próisis a fhorghníomhú trí exec agus próiseas sceite á reáchtáil. Ina theannta sin, ní bheidh tú in ann a bheith ag súil ó phróisis éagsúla (lena n-áirítear an t-úsáideoir mar cheann amháin) ag an am céanna.

Is féidir tionchar mór a bheith ag paraiméadair chríochfort ar scripteanna. Mar shampla, má scríobhaítear script chun cuardach a dhéanamh ar mhacáil, déanfaidh sé mí-iompar má dhiúltaítear an macalla. Ar an gcúis seo, Fíor ag súil fóraimí teirminéil sane de réir réamhshocraithe. Ar an drochuair, is féidir leis seo rudaí a dhéanamh mí-oiriúnach do chláir eile. Mar shampla, ba mhaith leis an bhlaosc emacs na mapaí "is gnách" a athrú: faightear línelínte nua ar línelínte nua seachas línte nua ar ais iompair, agus tá an macallamh faoi mhíchumas. Ligeann sé seo emacs amháin a úsáid chun an líne ionchuir a eagrú. Ar an drochuair, ní féidir súil a bheith ag súil leis seo.

Is féidir leat a iarraidh go bhfuil súil agam nach ndéanann sé a leagan réamhshocraithe de pharaiméadair teirminéil a mhaolú, ach ní mór duit a bheith an-chúramach ansin nuair a scríobh scripteanna do thimpeallachtaí den sórt sin. I gcás emacs, a sheachaint ag brath ar rudaí cosúil le macallaíocht agus mapaí deireadh-líne.

Bain úsáid as na horduithe a ghlac le hargóintí a lorgaíodh isteach i liosta amháin ( ag súil leis na hiontrálacha agus idirghníomhú ) heuristic chun cinneadh a dhéanamh an bhfuil argóint amháin i ndáiríre nó go leor. Is féidir leis an heuristic a theipeann ach amháin i gcás ina ndéanann an liosta argóint amháin a léiriú ina bhfuil carachtair uilig iomadúla le carachtair spáis neamhghnácha eatarthu. Is cosúil go bhfuil sé seo go leor dócha, áfach, is féidir an argóint "-nobrach" a úsáid chun argóint amháin a fheidhmiú le láimhseáil mar argóint amháin. D'fhéadfaí é seo a úsáid go deimhin leis an gcód Ag súil le meaisín a ghintear. Ar an gcaoi chéanna, cuireann argóint aon argóint amháin le láimhseáil mar phátrúin / gníomhartha ilghnéitheacha.

BUGS

Bhí sé an-intuigthe an "gnéas" clár a ainmniú (le haghaidh "Smart EXec" nó "Send-Expect"), ach b'fhearr le tuiscint mhaith (nó b'fhéidir go díreach Puritanism).

Ar roinnt córais, nuair a bhíonn sclaosc le sceitheadh, gearánann sé nach bhfuil sé in ann rochtain a fháil ar an tty ach go ritheann sé ar aon nós. Ciallaíonn sé seo go bhfuil meicníocht ag do chóras chun an tt rialú a fháil nach bhfuil a fhios ag súil leis. Faigh amach cad é, agus cuir an fhaisnéis seo ar ais chugainn.

Measann Ultrix 4.1 (ar a laghad na leaganacha is déanaí timpeall anseo) go bhfuil amouts de 1000000 os cionn coibhéiseach le 0.

Diúltaíonn Digiteach UNIX 4.0A (agus is dócha go bhfuil leaganacha eile) ptys a leithroinnt má shainíonn tú láimhseálaí SIGCHLD. Féach leathanach deontais le haghaidh tuilleadh eolais.

Ní dhéileálann IRIX 6.0 ceadanna pty i gceart ionas go mbeifear in ann iarracht a dhéanamh píosa a d'úsáid cheana féin ag duine eile a leithdháileadh. Uasghrádú ar IRIX 6.1.

Fálann Telnet (a fhíoraítear faoi SunOS 4.1.2 ach amháin) mura bhfuil Téarmaí leagtha síos. Is fadhb é seo faoi cron, ag agus i scripteanna cgi, nach sainmhínítear TÉARMA. Dá bhrí sin, ní mór duit é a leagan go sainráite - cén cineál nach mbaineann le hábhar de ghnáth. Ní mór é a shocrú ach rud éigin! Is dócha go mbainfidh an méid seo a leanas dócha don chuid is mó cásanna.

leagtha (TÉARMA) vt100

Tá an leid (a fhíoraítear ach amháin faoi BSDI BSD / OS 3.1 i386) crochta mura bhfuil SHELL agus HOME leagtha síos. Is fadhb é seo faoi cron , ar agus i scripteanna cgi , nach sainmhínítear na hathróga timpeallachta seo. Dá bhrí sin, ní mór duit iad a leagan go sainráite - cén cineál nach mbaineann le hábhar de ghnáth. Ní mór é a shocrú ach rud éigin! Is dócha go mbainfidh an méid seo a leanas dócha don chuid is mó cásanna.

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

Dearadh roinnt implementations ptys ionas go dtéann an t-einsil ar aon aschur gan léamh tar éis 10 go 15 soicind (tá an líon iarbhír ag brath ar fheidhmiú) tar éis don phróiseas tuairiscí comhad a dhúnadh. Dá bhrí sin, ag súil le cláir ar nós

sceitheadh ​​codlata dáta 20 ag súil

theipeann. Chun é seo a sheachaint, cláir neamh-idirghníomhacha a chur i bhfeidhm le feidhmiú seachas sceitheadh . Cé gur dóigh go bhfuil cásanna den sórt sin, i gcleachtas, níor tharla riamh le cás ina gcaillfí aschur deiridh clár fíorghníomhach mar gheall ar an iompar seo.

Ar an láimh eile, caitheann Cray UNICOS aon aschur gan léamh díreach tar éis don phróiseas tuairiscí comhaid a dhúnadh. Tuairiscigh mé seo go Cray agus tá siad ag obair ar shocrú.

Uaireanta, tá gá le moill idir pras agus freagra, mar shampla nuair a bhíonn comhéadan tty ag athrú socruithe UART nó ag comhoiriúnú rátaí baud trí ghiotáin tosaithe / stad a lorg. De ghnáth, is gá é seo go léir a chodladh le haghaidh dara nó dhó. Is teicníc níos láidre é a athscríobh go dtí go bhfuil na crua-earraí réidh chun ionchur a fháil. Úsáideann an sampla seo a leanas an dá straitéis:

seol "luas 9600 \ r"; codlata 1 ag súil {{sceideal {seol "\ r"; exp_continue} $ pras}

ní bheidh gaiste-cód ag obair le haon ordú a shuíonn i lúb ócáid ​​Tcl, mar shampla codlata. Is í an fhadhb ná go mbainfidh Tcl na cóid ar ais ó láimhseálaithe ócáidí async sa chás sin. Is éard atá i gceist ná bratach a leagan síos sa chód gaiste. Ansin seiceáil an bhratach díreach tar éis an orduithe (ie, codlata).

Níl an t-ordú expect_background neamhaird ar argóintí ama agus níl aon choincheap de thréimhse ama i gcoitinne.

& # 34; SEACHTAÍ A SHÍBHREITHNIÚ & # 34;

Tá cúpla rud ann faoi Ag súil a d'fhéadfadh a bheith neamh-iomasach. Iarrann an chuid seo aghaidh a thabhairt ar chuid de na rudaí seo le roinnt moltaí.

Is é an fhadhb atá ann go coitianta ná mar a aithníonn sé leideanna sliogáin. Ós rud é go ndéantar iad seo a shaincheapadh go difriúil ó dhaoine difriúla agus sliogáin éagsúla, is féidir go mbeadh sé deacair rlogin a uathoibriú go hiompróir gan an pras a fhios agam. Is é coinbhinsiún réasúnta ná go gcuirfidh úsáideoirí abairt rialta ar fáil ag cur síos ar a n-pras (go háirithe, deireadh é) san athróg timpeallachta EXPECT_PROMPT. Is féidir cód mar seo a leanas a úsáid. Mura bhfuil EXPECT_PROMPT ann, tá seans maith ag an gcód fós feidhmiú i gceart.

socraigh pras "(% | # | \\ $) $"; # réamhshocrú pras réamhshocraithe {socraigh $ pras (EXPECT_PROMPT)} ag súil leis -re $ go pras

Spreag mé duit a scríobh ag súil le patrúin a chuimsíonn deireadh cibé is dóigh leat a fheiceáil. Seachnaíonn sé seo an fhéidearthacht ceist a fhreagairt sula bhfaca an rud ar fad. Ina theannta sin, cé go bhfuil tú in ann ceisteanna a fhreagairt roimh iad a fheiceáil go hiomlán, má fhreagairt tú go luath, d'fhéadfadh go n-éireodh le do fhreagra ar ais i lár an cheist. I bhfocail eile, beidh an t-agallamh mar thoradh ar an gceart ach déanfar breathnú air.

Áirítear sa chuid is mó leideanna carachtar spáis ag an deireadh. Mar shampla, is é an fras ó ftp 'f', 't', 'p', '>' agus. Chun an pras seo a mheaitseáil, ní mór duit gach ceann de na carachtair seo a áireamh. Is comhartha comónta é gan an bán a chur san áireamh. Cuir an folamh go sainráite.

Má úsáideann tú patrún den fhoirm X *, déanfaidh * comhoiriúnach leis an aschur go léir a fhaightear ó dheireadh X go dtí an rud deireanach a fuarthas. Fuaimeann sé seo iomasach ach is féidir a bheith beagán mearbhall toisc gur féidir leis an abairt "an rud deireanach a fuarthas" a athrú ag brath ar luas an ríomhaire agus próiseáil I / O araon ag an eithne agus an tiománaí gléas.

Go háirithe, bíonn daoine ag baint amach aschur an chláir a thagann i gcodanna ollmhóra (go adamhach) nuair a bhíonn an chuid is mó de na cláir ag táirgeadh aschur líne amháin ag an am. Ag glacadh leis gurb é seo an cás, ní fhéadfaidh * * i bpátrún an mhír roimhe seo ach deireadh na líne reatha a mheaitseáil ach is cosúil go bhfuil níos mó ann, mar gheall ar an am a bhí an t-aschur go léir a fuarthas.

súil agam nach bhfuil aon bhealach ann a thuiscint go bhfuil aschur breise ag teacht mura rud é go dtugann do phátrún go sonrach dó.

Fiú amháin ag brath ar mhaolú líne-dhírithe tá sé ciallmhar. Ní hamháin go ndéanann cláir geallúintí faoin gcineál maolúcháin a dhéanann siad ach is féidir leis an gcóras neamhspleácha línte aschuir a bhriseadh suas ionas go dtosaíonn línte ag áiteanna cosúil go randamach. Dá bhrí sin, más féidir leat na carachtair is déanaí a chur in iúl de pras nuair a bhíonn patrúin scríofa agat, is ciallmhar é sin a dhéanamh.

Má tá tú ag fanacht le patrún in aschur deiridh de chlár agus go n-éistíonn an clár rud éigin eile ina ionad sin, ní bheidh tú in ann é sin a bhrath leis an eochairfhocal ama ama . Is é an chúis atá leis ná go mbeidh súil ag am ar bith - beidh sé ina dhiaidh sin. Bain úsáid as sin ina ionad. Níos fearr fós, bain úsáid as an dá cheann. Ar an mbealach sin má aistrítear an líne sin riamh, ní bheidh ort an líne féin a chur in eagar.

Déantar Newlines a thiontú go hiondúil chun seoltaí ar ais iompair, línelínte nuair a bhíonn an tiománaí críochnaithe ag aschur. Dá bhrí sin, más mian leat patrún a luíonn go sainráite leis an dá líne, ó, deir, printf ("foo \ nbar"), ba chóir duit an patrún "foo \ r \ nbar" a úsáid.

Tarlaíonn aistriúchán den chineál céanna nuair a léitear ón úsáideoir, trí expect_user . Sa chás seo, nuair a phreas tú ar ais, déanfar é a aistriú go líne nua. Má táthar ag súil ansin téann sé sin go dtí clár a leagann a chríochfort chun mód amh (cosúil le telnet), beidh fadhb ann, mar go bhfuil an clár ag súil le tuairisceán fíor. (Tá cuid de na cláir ag tabhairt buíochas i ndáiríre go gcuirfidh siad línte nua le chéile ar ais, ach ní dhéanann siad an chuid is mó.) Ar an drochuair, níl aon bhealach ann a fháil amach go gcuirfidh clár a theirminéal isteach i mód amh.

In ionad na línte nua a athsholáthar de láimh, is é an réiteach an t-ordú "stty amh" a úsáid, rud a chuirfidh deireadh leis an aistriúchán. Tabhair faoi deara, áfach, go gciallaíonn sé seo nach bhfaighidh tú na gnéithe eagarthóireachta líne a chócaráil a thuilleadh.

idirghníomhaíonn go hintuigthe do chríochfort go mód amh, mar sin ní bheidh an fhadhb seo ann.

Is minic a úsáideann sé pasfhocail (nó faisnéis phríobháideach eile) i scripteanna Ag súil . Ní mholtar é seo ós rud é go bhfuil aon rud a stóráiltear ar ríomhaire freagrach as go mbeadh duine ar bith ag teacht air. Dá bhrí sin, is smaoineamh níos cliste é pastaí idirghníomhach le haghaidh pasfhocail ó script ná iad a ionchorprú go litriúil. Mar sin féin, uaireanta is é sin an t-aon fhéidearthacht a ionchorprú.

Ar an drochuair, níl aon bhealach díreach ag an gcóras comhad UNIX chun scripteanna a chruthú atá inrite ach ní féidir a léamh. Is féidir le córais a thacaíonn le scripteanna slabhra setgid insamhail go hindíreach mar seo a leanas:

Cruthaigh an script Ag súil (ina bhfuil na sonraí rúnda) mar is gnách. Déan a cheadanna a bheith 750 (-rwxr-x ---) agus atá faoi úinéireacht grúpa iontaofa, ie grúpa a bhfuil cead aige é a léamh. Más gá, grúpa nua a chruthú chun na críche seo. Ansin, cruthaigh script / bin / sh le ceadanna 2751 (-rwxr-s - x) a bhfuil an grúpa céanna acu roimhe seo.

Is é an toradh an script a d'fhéadfadh duine ar bith a fhorghníomhú (agus é a léamh). Nuair a iarrtar air, reáchtálann sé an script Ag súil .

& # 34; FÉIDIR LEIS & # 34;

Tcl (3), libexpect (3)
"Iontráil ag súil: Uirlisí Tcl-bhunaithe le haghaidh Uathoibriú Cláir Idirghníomhacha" le Don Libes, lch. 602, ISBN 1-56592-090-2, O'Reilly and Associates, 1995.
"ag súil leis: Ag Coigeartú na nIarraonta Idirghníomhaíochta Neamh-Rialaithe" ag Don Libes, Imeachtaí an tSamhraidh 1990 Comhdháil USENIX, Anaheim, California, 11-15 Meitheamh, 1990.
.I "Ag baint úsáide as ag súil le Tascanna Riaracháin Córais a Uathoibriú" le Don Libes, Imeachtaí Comhdháil Riarachán Córais Suiteála USENIX 1990, Colorado Springs, Colorado, 17-19 Deireadh Fómhair, 1990.
.I "Tcl: Teanga um Ordú Inléite" ag John Ousterhout, Imeachtaí Chomhdháil USENIX an Gheimhridh 1990, Washington, DC, Eanáir 22-26, 1990. Táim "ag súil: Scripteanna maidir le Cláir Idirghníomhacha a Rialú" ag Don Libes, Córais Ríomhaireacht , Vol. 4, Uimh. 2, Iriseachtaí Preas Ollscoil California, Samhain 1991. I "Comhdháil Tríú Tástáil agus Cláir Idirghníomhacha Tástála Comhréireachta", le Don Libes, Imeachtaí Samhraidh 1992 Comhdháil USENIX, lch 135-144, San Antonio, TX, Meitheamh 12-15, 1992 .. I "Kibitz - Ag Ceangail Ilchláir Idirghníomhacha Le Chéile", le Don Libes, Bogearraí - Cleachtas & Taithí, John Wiley & Sons, West Sussex, England, Vol.

23, Uimh. 5, Bealtaine, 1993 .. Mar "Debugger for Applications Tcl", le Don Libes, Imeachtaí Cheardlann Tcl / Tk 1993, Berkeley, CA, 10-11-11 Meitheamh, 1993.

AUTHOR

Don Libes, Institiúid Náisiúnta um Chaighdeáin agus Teicneolaíocht

AONTAÍOCHTAÍ

Buíochas le John Ousterhout do Tcl, agus Scott Paisley as inspioráid. Go raibh maith agat le cód autoconfiguration Rob Savoye do Expect.

Déanann an comhad HISTORY cáipéisí mór ar an éabhlóid atá ag súil leis . Déanann sé léamh suimiúil agus d'fhéadfadh sé léargas breise a thabhairt duit ar na bogearraí seo. Buíochas leis na daoine a luaitear ann agus chuir mé meastacháin bhreise orm agus thug siad cúnamh eile.

Rinne rialtas na Stát Aontaithe deartha a dhearadh agus a chur i bhfeidhm go páirteach agus dá bhrí sin, tá sé i bhfearann ​​an phobail. Mar sin féin, ba mhaith leis an údar agus leis an NIST creidmheas má úsáidtear an clár seo agus na cáipéisí nó na codanna acu.