የሊኑክስ / ዩኒክስ ትዕዛዝ ጥበቃ

እንደ ስክሪፕት አሃዝ ወደ ሌሎች በይነተገናኝ ፕሮግራሞች የሚያቀርብ ፕሮግራም ነው. ስነ-ጽሑፉን በመከተል የወደፊት ጊዜ ምን እንደሚሆን እና ምን ዓይነት ምላሽ ሊሆን እንደሚገባው ያውቃል. አንድ የተተረጎመው ቋንቋ የሾፒትን እና ከፍተኛ ደረጃ የመቆጣጠሪያ መዋቅሮችን ያቀርባል. በተጨማሪም, ተጠቃሚው ሲፈልግ በቀጥታ መቆጣጠር እና መግባባት ይችላል, ከዚያ በኋላ ወደ ስክሪፕቲው መመለስ ይችላል.

Expectk የ Expect እና Tk ድብልቅ ነው. እንደ Expect እና Tk ምኞት ነው. በተለምዶም ቢሆን በ C ወይም C ++ ውስጥ Tcl መጠቀም አይቻልም.

«ተስፋ ይጠብቁ» የሚለው ስም የመጣው በ uucp, kermit እና በሌሎች ሞደም ቁጥጥር ፕሮግራሞች አማካኝነት በሰፊው የሚላክ ቅደም ተከተል / ክትትል ነው. ነገር ግን እንደ uucp ሳይሆን, Expect በተጠቃሚ ደረጃ ደረጃ ከማንኛውም ፐሮግራም እና ተግባር ጋር ሊሄድ ይችላል. ብዙ ፕሮግራሞችን በተመሳሳይ ጊዜ ማነጋገር ይችላሉ.

ምን መጠበቅ ይቻላል?

ለምሳሌ, ሊጠብቁት የሚገቡት ትዕዛዞች አንዳንድ ናቸው.

ዛፉ እነዚህን ተግባራት ለማከናወን የማይችልበት የተለያዩ ምክንያቶች አሉ. ሁሉም በሚጠበቀው ነገር ይቻላል.

በአጠቃላይ, በፕሮግራሙ እና በተጠቃሚ መካከል መስተጋብር የሚጠይቅ ማንኛውም ፕሮግራም ለማካሄድ ይጠቅማል. አስፈላጊ የሆነው በፕሮግራም መሠረት ጣልቃ መግባቱ ነው. ፕሮግራሙን መቆጣጠር ሳያስፈልግ ለተጠቃሚው ቁጥጥር ማድረግ ይችላል. በተመሣሣይ መልኩ ተጠቃሚው በማንኛውም ጊዜ ወደ ስክሪፕቱ መመለስ ይችላል.

አጠቃቀም

ለሚሰጡት ትዕዛዞች ዝርዝር cmdfile ን ያንብቡ. የሚጠበቀው # ላይ ከሚደግፉ ስርዓቶች ላይ በተለምዶ ሊሰጥ ይችላል. ስክሪፕቱን ሊሰረዝ በሚችልበት ጊዜ ላይ እና በ "ስክሪፕቲንግ" ውስጥ የመጀመሪያውን መስመር ማድረግ.

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

እርግጥ ነው, መንገዱ ህያው በሚመጣበት ቦታ በትክክል መንገዱን መግለፅ አለበት. / usr / local / bin አንድ ምሳሌ ብቻ ነው.

የ-ኮንቁ ኅብረቁምፊ ከስክሪፕት በፊት ከማናቸውም ትዕይንት ትዕዛዝ ይከላከላል. ቃሉ በአሸዋው ላይ እንዳይሰበር መጠቆም አለበት. ይህ አማራጭ በርካታ ጊዜ ጥቅም ላይ ሊውል ይችላል. ብዙ ትዕዛዞችን በቅጠላ ኮሎን በመለያየት በ-ሐ ላይ ሊተገበሩ ይችላሉ. ትዕዛዞች በቅደም ተከተል ይፈጸማሉ. Expectk ን ሲጠቀሙ, ይህ አማራጭ እንደ-ትዕዛዝ ይገለጻል.

የ-ዲ ዕልባት በዋናነት በዋናነት የሚገመገመውን እና እንደ መስተጋብር አይነት የውስጥ እንቅስቃሴዎችን ሪፖርት ያደርጋል. ይህ ዕልባት ከሚጠበቀው ስክሪፕት መጀመሪያ እንደ "exp_internal 1" ተመሳሳይ ውጤት አለው, የ Expected ስሪትም ታትሟል.

የ-ዲ አርታኢ በይነገጽ አራሚን ያነቃል. ኢንቲጀር እሴት መከተል አለበት. እሴቱ ዜሮ ያልሆነ ከሆነ ወይም ደግሞ ^ C ሲጫን ወይም የ "ብሬፕትስ" ቢጎበኝ, ወይም ሌላ አጭር ማረሚያ ትእዛዝ በስክሪፕቱ ላይ ብቅ ይላል. Expectk ን ሲጠቀሙ, ይህ አማራጭ እንደሚከተለው ነው - አርም.

የ -f መጋበዣ ትዕዛዞችን ለማንበብ የሚረዳ ፋይልን ቀድሞ ይመርጣል. እራሱን መጠቀም # ላይ በሚጠቀምበት ጊዜ ጠቋሚው እንደ አማራጭ ነው. ስለዚህ ሌሎች ግቤቶች በትእዛዝ መስመር ላይ ሊቀርቡ ይችላሉ. Expectk ን ሲጠቀሙ ይህ አማራጭ -file ነው.

በነባሪ, የትዕዛዝ ፋይል እስከሚታወቀው እና ሙሉ በሙሉ የተተገበረ ነው. አልፎ አልፎ ፋይሎችን በአንድ ጊዜ ማንበብ ያስፈልጎታል. የዘፈቀደ ፋይሎችን በዚህ መንገድ ለማስኬድ የ -b ሰንደቁ የሚለውን ይጠቀሙ. Expectk ን ሲጠቀሙ, ይህ አማራጭ እንደ-ቡት ይጠቀሳል.

ሕብረቁምፊ "-" እንደፋይል ስም ቢቀርብ, በምትኩ መደበኛ ግብዓት ተነቧል. "-" ን በትክክል ከተሰየመው ፋይል ላይ ለማንበብ "-" ይጠቀሙ.

የ-i ሰንደቅ ዓላማ ከአንድ ፋይል ውስጥ ከማንበብ ይልቅ ትዕዛዞችን ለመጠየቅ ይነሳሱ. ማራኪ የማድረግ ትዕዛዝ በማቋረጥ ትዕዛዝ በኩል ወይም በ EOF በኩል ይቋረጣል. የኢ-ኰንጎው አይታሰብም የትኛውም ትዕዛዝ ፋይል ወይም -c ጥቅም ላይ ካልዋለ ነው. Expectk ን ሲጠቀሙ, ይህ አማራጭ እንደ-ተለዋዋጭ ተብሎ ይገለጻል.

- የአማራጮች መጨረሻ ሊያልፍ ይችላል. ይህ ወደ ተግባርዎ የሚቀይር እንደ አማራጭ-ተመሣሣይ ነጋሪ እሴትን ወደ "ስክሪፕት "ዎ ለማለፍ ከፈለጉ በስራ ላይ ሊውል ይችላል. ይህ በጥቅም ላይ በ # ላይ መቀመጥ ይችላል! በማንኛውም ጠንቋዮች ላይ የሚደረገውን ትርጓሜ በተጠበቀው ለመከላከል. ለምሳሌ, በተለዋዋጭ argv ውስጥ የስክሪፕት ስምን ጨምሮ የመጀመሪያውን ነጋሪ እሴት ይተዋል.

#! / usr / local / bin / expect -

ተደጋግመው የ getopt (3) እና execve (2) ስብሰባዎች በ # ላይ ጭቅጭቆች ሲጨመሩ መጠበቅ እንዳለባቸው ልብ ይበሉ! መስመር.

የ $ $ exp_library / expect.rc ፋይል ከሆነ - አውቶማቲካሊ ካልሆነ በስተቀር. (Expectk ን ሲጠቀሙ, ይህ አማራጭ እንደ-NORC ይጠቀሳል.) ከዚህ በኋላ ወዲያውኑ ፋይል ~ / .expect.rc የሚሆነው--n ባንዲራ ካልተጠቀሰ በስተቀር ካልሆነ ነው. የአካባቢያዊ ተለዋዋጭ DOTDIR ከተገለጸ, እንደ ማውጫ እና ".expect.rc" ተብሎ ይታያል. Expectk ን ሲጠቀሙ, ይህ አማራጭ እንደ-nc ይገለጻል. ይህ አወጣጥ የሚከሰተው ማንኛውም-c ባንዲራዎችን ከተፈጸመ በኋላ ብቻ ነው.

-v ምክንያት የሱን የስሪት ቁጥር ለማተም እና ከፈለጉ ይውጡ. ረዥም የአምሳያ ስሞችን የሚጠቀመው በ Expectk ውስጥ ያለው ጠቋሚው-ጠለፋ ነው.

የአማራጭ ግብረቶች ወደ አንድ ዝርዝር ተወስዶ በተሰየመው ተለዋዋጭ (argv) እና ተለዋዋጭ ውስጥ ተከማችተዋል. argc ወደ argv ርዝመት ይጀምራል.

ምንም ስክሪፕት ካልተጠቀመ Argv0 የስክሪፕት ወይም የሁለትዮሽ ስም ተብሎ ተተርጉሟል. ለምሳሌ, የሚከተለው እትም የስክሪፕቱን ስም እና የመጀመሪያዎቹን ሦስት ክርክሮችን ያካትታል:

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

ትዕዛዞች

የሚጠበቀው የቋንቋ መቆጣጠሪያ ቋንቋን ነው. Tcl የመቆጣጠሪያ ፍሰት (if, for, break), የሒሳብ ግምገማ እና ሌሎች እንደ መልሶች እና የሒደት አፈጻጸም ያሉ ሌሎች በርካታ ባህሪያትን ያቀርባል. እዚህ ጥቅም ላይ የዋሉ ትዕዛዞች ግን አልተገለጹም (set, if, exec) የ Tcl ትዕዛዞች ናቸው. ተስፋ ተጨማሪ ትዕዛዞችን ይደግፋል. በሌላ መልኩ ካልተገለጸ, ትዕዛዞቹን ባዶ ሕብረቁምፊ ይመልሱ.

ትዕዛዞች በፍጥነት ሊገኙ ይችላሉ. ይሁን እንጂ, አዳዲስ ተጠቃሚዎች በእንደዚህ አይነት ቅደም ተከተል መወልወል, መላክ, መጠበቅ እና መስተጋብሮችን በማንበብ ለመጀመር ቀላል ሆኖ ሊያገኙት ይችላሉ.

close [-lave] [-lecec 0 | 1] [-i spawn_id]

ከአሁኑ ሂደት ጋር ያለውን ግንኙነት ይዘጋል. አብዛኛዎቹ በይነተገናኝ ፕሮግራሞች የእኛ ፋይ / ስለዚህ አብዛኛውን ጊዜ ሂደቱን ለመግደል በቂ ነው. የ-ዒላማው ሂደቱን ከታች የተጠቀሰውን spawn_id ለመዝጋት ያለውን ሂደት ይገልጻል.

ሁለቱም የግዴታ እና መስተጋብር አሁን ያለው ሂደቱ ከቆመ እና በተዘዋዋሪ የሚዘጋ ሲሆን ይከታተላል, ነገር ግን ሂደቱን ከግፈህ "exec kill $ pid" ብለው ይናገሩ, በቅርብ ደውለው መጥራት አለብዎት .

የ -onexec ዕልባት በአዳዲስ ሂደቶች ውስጥ የፍጥነቱ መታወቂያው የተዘጋ መሆኑን ወይም ሂደቱ የተላለፈ መሆኑን ይወስናል. አንድ የእግር መሰወጫ መታወቂያ ይክፈቱ ለማስገባት 0 ዋጋ 0. ተጠቀምበት ያልሆነ ዜሮ እሴት በማናቸውም አዲስ ሂደቶች ውስጥ ተክሌው እንዲዘጋ ያደርገዋቸዋል.

-deslave ጠቋሚው ከእብሰቱ መታወቂያ ጋር የተጎዳኘውን ይዘጋል. ግንኙነቱ በሚዘጋበት ጊዜ ባሪያው ክፍት ሆኖ ከተከፈተ በራሱ ተዘግቷል.

ግንኙነቱ በተዘዋዋሪ ወይም በተዘዋዋሪ ቢዘጋም, ተጓዳኝ የከርነል ሂደት ማስገቢያ ቀዳዳውን ለማጽዳት መጠበቅ አለብዎት. የዝግጅት ትዕዛዝ ተጠባባቂነት አይዯሇም ምክንያቱም አንዴ የሂዯት ግንኙነት መዝጋት እንዲወጣ ያዯርገዋሌ.

ስህተት [[-now] 0 | 1]

የሒሳብ ማረም እና ማረም ነጥቦችን እንዲያወጡ የ Tcl ማረሚያውን ይቆጣጠራል.

ምንም ምንም ነጋሪ እሴቶች ሳይኖር, አራሚው እየሄደ ከሆነ, አንድ 1 ይመለሳል, አለበለዚያ 0 ተመለሰ.

በ 1 ክርክር ውስጥ, አራሚው ተጀምሯል. በ 0 ክርክር, አሻሚው ይቆማል. አንድ 1 ሙግት በወቅቱ-ጠቋሚው ከቀዳሚ በፊት ከሆነ አራሚው ወዲያውኑ ይጀምራል. አለበለዚያ, አራሚው ከሚቀጥለው የቲክ መግለጫ ጋር ተጀምሯል.

የአርም መመሪያ ትዕዛዝ ማንኛውንም ዓይነት ወጥመድ አይለውጥም. ይህን ከዲ ዲ ባንዲራ ይጠብቁ.

የማቋረጥ ትዕዛዝ የተራቀቀ ሂደትን ከዋናው ላይ ይቋረጥበታል . ከጀርባው እየሄደ ይቀጥላል. ሂደቱ የራሱ የሆነ የሂደቱን ቡድን ይሰጣል. መደበኛ I / O ወደ / dev / null ተዘዋውሯል.

የሚከተለው ቅፅ በጀርባ ውስጥ ስክሪፕቱን ማስሄድ ለመቀጠል ይለያያል.

{[fork]! = 0} መውጣት ተለያይቷል. . .

የሚከተለው ስሕተት የይለፍ ቃልን ያንብቡ እና ከዚያ በሚያስፈልግበት ጊዜ እያንዳንዱን የይለፍ ቃል በየሰዓቱ ያሂዳል. ስክሪፕቱ የይለፍ ቃሉን ይሰጥዎታል ስለዚህም አንድ ጊዜ ብቻ መተየብ ያስፈልግዎታል.

send_user "ይለፍ ቃል: \ n" ለ {} 1 {} {if {[fork]! = 0} {sleep 3600; ይቀጥሉ} 1, ሕብረቁምፊ) \ r ". . . መውጣት}

ከሼል የአሳሽ ሂደት (&) እቃዎች ላይ ግንኙነት ማቋረጥ ጥቅሙ ከመጪው በፊት ግንኙነቱን ከመተላለፉ በፊት የቲን (ኤነርጂ) መለኪያን ማስቀመጥ ይችላል, ከዚያ በኋላ ወደ አዲሱ ፒሲዎች ተግባራዊ ያደርጋል. ከ & ጋር, ተርጓሚው በሚቀበለው ጊዜ ከመግቢያው ተቆራርጦ ከመግባቱ በፊት የባንኩን ውቅሮች የማንበብ ዕድሉ የለውም.

exit [-opts] [status]

ምክንያት ለመውጣት ወይም ለመዘጋጀት ዝግጁ ይሁኑ.

የ- ኢንሳይክድ ዕልባት ቀጣዩ ክርክር እንደ የውጪ ተቆጣጣሪ ሆኖ እንዲሰራ ያደርገዋል. ያለ ነጋሪ እሴት, አሁን ያለው የመጠባበቂያ ተቆጣጣሪ ተመለሰ.

-አንፀላይት ዕልባት ማንሳት ለመውጣት ዝግጁ ይሁኑ ነገር ግን አፋጣኝ ቁጥጥሩን ወደ ስርዓተ ክወናው ያቁሙ. በተጠቃሚ የተገለፁ የመውጫ ተቆጣጣሪዎች እንዲሁም የ Expect's own internal handlers ይሠራል. ተጨማሪ የትዕዛዝ ትዕዛዞች ሊፈጸሙ አይገባም. ይሄ ከሌሎች የ Tcl ቅጥያዎች ጋር አብረው የሚሄዱ ከሆነ ይህ ጠቃሚ ነው. የአሁኑ አስተርጓሚ (እና ዋናው መስኮት በ Tk አካባቢ ከሆነ) ሌሎች የ Tcl ቅጥያዎች ማጽዳት ይችላሉ. የተጠበቀው መውጫ እንደገና ከተደወለ (ምንም እንኳን ይህ ሊሆን ይችላል), ተቆጣጣሪዎች ዳግም አይመለሱም.

ከመውጣቱ ጀምሮ, ከተፈጠሩ ሂደቶች ውስጥ ሁሉም ግንኙነቶች ተዘግተዋል. ማደብዘዝ በተፈጠሩ ሂደቶች እንደ ኤፍኤ ይደረጋል. ውጫዊው ሒደቱ (ዊሊ) (2) አሰራር ከተፈቀደው በላይ ሌላ እርምጃ አይወስድም. ስለዚህ ለኤፍኤ ምርመራ የማያደርጉ ሂደቶች መቀጠል ይችላሉ. (የተለያየ ሂደቶች እንደሚላኩ ለመወሰን የተለያዩ ሁኔታዎች በጣም ወሳኝ ናቸው, ነገር ግን እነዚህ በመረጃ ስርዓት ላይ የተመሰረቱ ናቸው, በተለይም በመውጣት (3) ጊዜ ውስጥ የታተሙ ናቸው. የተተከሉ ሂደቶች በ init ይወርዳሉ.

ሁኔታ (ወይም 0 ካልተገለጸ) የሚጠበቀው የውጪ ሁኔታ እንደሚመለስ ይመለሳል. ስክሪፕቱ መጨረሻ ላይ ቢደረስ የሚደረገው መውጫ በቀጥታ ተፈጽሟል.

exp_continue [-continue_timer]
' Exp_continue' የሚለው ትዕዛዝ እሱ በተለምዶ እንደሚመለሰው ሳይሆን እራሱን ለማስፈፀም እንደሚቀጥል ይፈቅዳል. በነባሪ መጋጠሚያ / እረፍት ጊዜ ሰዓት ዳግም ያስጀምረዋል. የ -continue_timer ጠቋሚ ሰዓቶች ዳግም እንዳይነሳ ይከላከላል. (ተጨማሪ መረጃ ለማግኘት ይጠብቁ .)

exp_internal [-f file] እሴት
ተጨማሪ እሴት ወደ ዲያሜትር መረጃ እንዲላክ ተጨማሪ ትዕዛዞችን ያስነሳል , ዋጋው ዜሮ ካልሆነ ወደ stderr ይጠብቁ . ይህ የምርቱ ውጤት ዋጋ 0. ከሆነ ዋጋው ይሰናከላል. የመመርመሪያው መረጃ የተቀበለውን እያንዳንዱን ፊደል ያካተተ እና የአሁኑን ውጤት ከትርጉሞች ጋር ለማዛመድ የተደረጉ እያንዳንዱ ሙከራዎች ያካትታል.

አማራጫው ፋይል ከተቀረበ ሁሉም የተለመደው እና የማረሚያ ውፅዓት ወደ እዛው ፋይል የተጻፈ ነው ( ዋጋ እሴት ቢሆንም ). ማንኛውም ቀዳሚ የምርመራ ውጤት ፋይል ተዘግቷል.

የ- ኢንዶው ዕልባት የተሰጡትን በጣም የቅርብ ጊዜ ያልሆኑ የመረጃ ልውውጦችን ዝርዝር መግለጫ ለመመለስ exp_internal (ኮምፒተርን) ይሰጣል.

exp_open [args] [-i spawn_id]
ከዋናው የግዴታ መታወቂያ ጋር የሚዛመድ የ Tcl ፋይል መለያ ይልካል. የፋይል መለያው በቲ.ኮ.ት ክፍት ትዕዛዝ እንደተከፈተ ያገለግላል . (እንቁላሉ መታወቂያ ከአሁን በኋላ ጥቅም ላይ መዋል የለበትም ጥ ይጠብቃል .

የ- አስከፍት ፖይንት የሚጠበቀው ትዕዛዝ በተጠበቀው ትዕዛዝ በኩል ለመድረስ ክፍት ነው. በእጩ ወት መታወቂያ መታረድ አለበት.

exp_pid [-i spawn_id]
አሁን ካለው ሂደቱ ጋር የሚዛመድ የሂደት መታወቂያውን ይመልሳል. --ኢ ዕልባት ጥቅም ላይ ከዋለ ፒዲው ከተሰጠው እምብርት መታወቂያ ጋር ይመሳሰላል.

exp_send
ለመላክ ቅጽል ስም ነው.

exp_send_error
send_error ተለዋጭ ስም ነው.

exp_send_log
send_log ቅፅል ነው .

exp_send_tty
send_tty ተለዋጭ ስም ነው.

exp_send_user
send_user ቅጽል ስም ነው.

exp_version [[-exit] ስሪት]
ስክሪፕቱ ከአሁኑ የ Expect ስሪት ጋር ተኳሃኝ መሆኑን ለማረጋግጥ ጠቃሚ ነው.

ምንም ግቤቶች ከሌሉ የአሁኑ የ Expect ስሪት ተመልሷል. ይህ ስሪት በስክሪፕትዎ ውስጥ ሊቀየር ይችላል. የቅርብ ጊዜ ስሪቶችን ባህሪያትን እየተጠቀሙ አለመሆኑን ካወቁ ቀደም ብሎ ስሪት መጥቀስ ይችላሉ.

ስሌቶች በሶስት ቁጥሮች የተከፋፈሉ ቁጥሮች ናቸው. የመጀመሪያው ዋናው ቁጥር ነው. ለትርጉሞች ለወደፊቱ የተጻፉ የስክሪፕት ስክሪኖች በእርግጠኝነት የተለየ ቁጥርን ጠብቀው ሊሆኑ አይችሉም. exp_version የቁጥር ቁጥሮች ካልተዛመዱ ስህተት ያወጣል .

ሁለተኛው ቁጥር አነስተኛ ቁጥር ነው. ከአሁኑ ስሪት ቁጥር ጋር ለትልቁ ትንሽ ቁጥር ስሪት የተፃፉ የስክሪፕት ስክሪፕቶች በአዲስ ባህሪ ላይ ሊወሰኑ እና ሊሰሩ ላይችሉ ይችላሉ. exp_version የቁጥር ኦፊሴላዊ ቁጥር ከተመዘገበ ስህተት ያመጣል, ነገር ግን የስክሪፕት ቁጥር ጥቂቱ ከሚጠበቀው ክንውን የበለጠ ነው.

ሶስተኛ በክፍሉ ማወዳደር ውስጥ ምንም ሚና የማይጫወቱ ቁጥር ነው. ሆኖም ግን, የ " Expect" ሶፍትዌር ስርጭት በምንም መልኩ እንደ ተለውጧል, እንደ ተጨማሪ ሰነዳ ወይም ማመቻቸት. በእያንዳንዱ አዲስ አነስተኛ ስሪት ላይ ወደ 0 ይቀናበራል.

ከ- ወጥ ዕልባት ጋር, ስሪት ጊዜው ያለፈበት ከሆነ ስህተቶች እና መውጣቶች ይጠብቁ .

[[-opts] pat1 body1] ... [-opts] patn [bodyn]
ከተፈለገው ሂደቱ አኳያ አንድ ዓይነት እስኪመጣ ድረስ ይጠባበቃል, የተወሰነ የተወሰነ ጊዜ አልፎ አልፎ ወይም የማጠናቀቂያ ፋይሉ ይታያል. የመጨረሻው አካል ባዶ ከሆነ ምናልባት ሊተላለፍ ይችላል.

ከቅርብ ጊዜው በፊት የሚጠበቀው ትዕዛዝ ቅፅ ከየትኛውም ሌሎች ቅጦች ይልቅ በተዘዋዋሪ ጥቅም ላይ ውሏል. በጣም በቅርብ ጊዜ ውስጥ ከሚጠበቀው የኋለኛው ትዕዛዝ ስርዓተ-ጥለት ከየትኛውም ሌላ ቅጦች ይልቅ በተዘዋዋሪ ጥቅም ላይ ይውላል.

ለትልቅ ዓውደ- ሐሳቦች ከአንድ በላይ መስመር ያስፈልጋቸዋል, እያንዳንዱን መስመር በጀርባ ማቆም ላይ እንዳይቋረጥ ለማስቻል ሁሉም ክርክሮች ወደ አንድ "የተጣመመ" ሊሆኑ ይችላሉ. በዚህ ጉዳይ ላይ, ጥርስ ቢኖርም የተለመደው የቲ.ሲ መለኪያዎች ይከሰታሉ.

ስርዓተ-ምሳሌ ከ eof ቁልፍ ከሆነ , ተጓዳኝ አካሉ በሂደቱ መጨረሻ ላይ ይፈጸማል. አንድ ንድፍ ቁልፍ ቃል የቁልፍ ማብቂያው ከሆነ , ተመጣጣኙ አካሉ በእረፍት ጊዜው ይገደጣል. የጊዜ ማብቂያ ቁልፍ ጥቅም ላይ ካልዋለ, የውል ጊዜ ርዝማኔ በተቃጠለ ጊዜ ይፈጸማል. ነባሪው የማብቂያ ጊዜ 10 ሰከንዶች ነው, ነገር ግን በ "set timeout 30" ትዕዛዝ, ለምሳሌ ወደ 30, ሊስተካከል ይችላል. ማለቂያ ገደብ በእሴቲቱ -1 ሊለወጥ ይችላል. ንድፍ ነባሪው ቁልፍ ቃል ከሆነ, ተመጣጣኙ አካል በየትኛውም ጊዜ ማብቂያ ወይም መጨረሻ-ፋይል ውስጥ ነው የሚከናወነው.

ስርዓተ-ጥለት ከተዛመደ, ተጓዳኝ አካሉ ይፈጸማል. መጠበቅ የሚመጣው የአካል ውጤት ይመልሳል (ወይም ምንም ተመሳሳይ ቅርጸት ከሌለው ባዶ ሕብረቁምፊ). በርካታ ንድፎች ሲዛመዱ, የመጀመሪያው የሚታይበት አካል ሰውነትን ለመምረጥ ጥቅም ላይ ይውላል.

ሁልጊዜ አዲስ ውጤት ሲመጣ ከተመረጡት ቅደም ተከተል በእያንዳንዱ ዝርዝር ውስጥ ይታያሉ. ስለዚህ, አንድ ነገር የተረጋገጠ አንድ ነገር በመምሰል እንደ የመግቢያ ምልክት በመምረጥ ግጥሚያ አለመኖርን ሊፈትኑት ይችላሉ. ፈጣን በሌላቸው ሁኔታዎች, የእረፍት ጊዜን መጠቀም አለብዎት (ልክ እርስዎ እራስዎ ያደርጉ እንደነበረው ሁሉ).

ቅጦች በሶስት መንገዶች ተገልጸዋል. በነባሪነት, ስርዓተ ጥለቶች ከ Tcl የስህተት ትዕዛዝ ትዕዛዝ ጋር ተጠቅሰዋል. (እንደዚህ ዓይነቶቹ ቅርጾች ከ "ዚ" (ፔፕ) ቅርጻ ቅርጾች ጋር ​​ይጣጣማሉ). የ- ጎግ ዕልባት ባንዲራዎች እንዳይሠሩ ከሚጠብቋቸው ስርዓቶች ለመከላከል ጥቅም ላይ ሊውል ይችላል. ማንኛውም በ "-" የሚጀምረው በዚህ መልኩ የተጠበቀ ነው. (በ «-" የሚጀምሩ ሁሉም ሕብረቁምፊዎች ለወደፊት አማራጮች የተያዙ ናቸው.)

ለምሳሌ, የሚከተለው ቁራጭ የተሳካውን መግቢያ ይፈልጋል. ( ማሰናከያው በስክሪፕቱ ውስጥ በሌላኛው አካል የተተረጎሙበት ሂደት እንደሆነ ይቆጠራል.)

ይጠብቁ {busy {puts busy \ n; exp_continue} አልተሳካም «የተሳሳተ የይለፍ ቃል» አቋርጦ ማቋረጥ ጊዜ ማቋረጥ}

በአራተኛው ቅደም ተከተል አስፈላጊ ነው. ክፍሉ አንድ ቦታን ስለሚይዝ ከትክክለኛው ስርዓተ-ምህረት ይለያል. ተመሳሳይ ድርጊት ያላቸው (እንደ 3 ኛ እና 4 ኛ) ያሉ ቅጦች ድርጊቶቹን እንደገና መዘርዘር ያስፈልገዋል. ይህ የ regexp-style patterns (ከዚህ በታች ይመልከቱ) ሊጠቀም ይችላል. የአለም አቀፍ ቅጦች ቅጦችን ስለመፍጠር ተጨማሪ መረጃ በ Tcl ማኑዋል ውስጥ ይገኛል.

የ regexp-style ዘይቤዎች በቲ.ግ.ክስ (በ " ሪፈራል ኤፕል ") ትዕዛዝ የተገለጸውን አገባብ ይከተላሉ. የ regexp ቅጦች ከባንዲራ ጠቋሚው ጋር ይገናናሉ . የቀድሞው ምሳሌ እንደ regexp በመጠቀም እንደገና ሊፃፍ ይችላል:

ይጠብቁ {busy {puts busy \ n; exp_continue} -ይ "ያልተሳካ | ትክክለኛ ያልሆነ የይለፍ ቃል" ማቋረጥ ጊዜያዊ ማቋረጥ የተያያዘ ነው}

ሁለቱም ዓይነት ስርዓቶች "ያልተጣሉ" ናቸው. ይህ ማለት ስርዓተ-ጥለት ከዋነኛው ሕብረቁምፊዎች ጋር ማመሳሰል የለበትም, ነገር ግን በማረሚያው ውስጥ የትኛውም ቦታ ላይ ማረም እና መጨረሻውን ማቆም ይችላል (ሁሉንም ነገር ልክ እስከተከተመ ድረስ). የሕብረቁምፊውን መጀመሪያ ለማዛመድ, እና $ ከቅንብሩ ጋር ለመዛመድ ይጠቀሙ. አንድ የሕብረቁምፊ መጨረሻ እስክትጠበቅ ካልጠበቁ, መልሶችዎ ከተፈለገው ሂደቱ በሚስተካከሉበት ጊዜ በቀላሉ በጨርቁ መካከል ሊኖሩ ይችላሉ. ትክክለኛው ውጤት በማምረት ላይ እያለ ውጤቱ ተፈጥሯዊ ነው. ስለዚህም, አንድ ሕብረ ቁምፊ መጨረሻ ላይ ገጸ-ባህሪያትን በትክክል መግለፅ ከቻሉ የ $ አጠቃቀም ይበረታታል.

በበርካታ አርታኢዎች ውስጥ ^ እና $ የሚዛመዱ መስመሮችን መጀመሪያ እና መጨረሻ ያዛሉ. ሆኖም ግን, በመስመር ላይ ባለመጠበቅ ላይ ስለማይጠብቁ, እነዚህ ገጸ-ባህሪያት በአሁኑ ጊዜ በሚጠብቁት የጥቅፊያ ቋት (ከባለ መስመር ጋር በተቃራኒው ሳይሆን) ከውጤቱ መጀመሪያ እና መጨረሻ ጋር ይዛመዳሉ. (ከዚህ በታች "ማስታወሻ ስለማስገባት") የሚለውን ይመልከቱ.

የ- ኢሳይን ዕጣ የስርዓተ-ጥለት እንደ "ትክክለኛ" ሕብረቁምፊ እንዲዛመድ ያደርገዋል. የ *, ^, ወዘተ አልተደረገም (ምንም እንኳን የተለመደው የቲ.ሲ. ስብሰባዎች አሁንም መከበር አለባቸው). ትክክለኞች ቅጦች ሁልጊዜ ያልተቀመጡ ናቸው.

የኖኮሌት ዕልባት የውጤቱ አቢይ ሆሄያት ቁንጮዎቹ አነስተኛው ቁምፊዎችን ያነጻጽሩታል. ንድፉ አይነካም.

በማንበብ ላይ በሚሆንበት ጊዜ, ከ 2000 በላይ ባይቶች ቀደምት ባይት "እንዲረሳ" ሊያስገድድ ይችላል. ይሄ በተገቢው_መጠን / ልከ ተዛማጅ ሊለወጥ ይችላል . (በጣም ብዙ ትላልቅ ዋጋዎች የስርዓተ ጥለቁን ማረም ሊያዘገዩ እንደሚችሉ ልብ ይበሉ.) የመታጠፊያ ዝርዝሩ ሙሉ_ቡጥ ከሆነ, ተመጣጣኝ አካሉ የተገጣጠመው ከኛ ጋር የሚዛመዱ_በከቦች የተቀበሉት እና ሌሎች ቅጦች ካሏቸው ከሆነ ነው. የ full_buffer ቁልፍ ቃል ጥቅም ላይ እንደዋለ ወይም እንዳልተጠቀመ , የተረሱት ቁምፊዎች wait expect_out (ጽፋ) ናቸው.

የትርፍ መዝገቡ ዝርዝር የመታወቂያው ቃል ባዶ ከሆነ , እና nullዎች ይፈቀዳሉ (በ remove_nulls ትዕዛዝ በኩል), አንድ ASCII 0 ተዛማች ከተመሳሳይ ተኪው ይፈጸማል . በ 0 ባይት በስፋት ወይም በ regexp ቅጦች ጋር ማዛመድ አይቻልም.

ከስርዓተ-ጥለት (ወይም ኢፍ ወይም ሙሉ_በቂጠሪ ጋር ማዛመድ) ከማንኛቸውም ተዛማጅ እና ከዚህ በፊት ያልተገናኘ ውፅዓት በ Variable expect_out (buffer) ውስጥ ይቀመጣል. እስከ 9 ክሮኒክስ ሪችድድ ንኡስ ተዛማጆች ይጠበቃል expect_out (1, string)expect_out (9, string) ውስጥ ተይዘዋል . -ወንፊዶች ጠቋሚ ከአንድ ስርዓተ-ጥለት በፊት ጥቅም ላይ ከዋሉ የ 10 ሕብረቁምፊዎች የመጀመሪያ እና መጨረሻ ግቤቶች (የ X, መጀመሪያ) እና expect_out (X, end) እና X ዲጂት, በማደፊያው ውስጥ ካለው ከሰነድ አቀማመጥ ጋር ይዛመዳል. 0 የሚያመለክተው ለዋና ስርዓተ-ጥለት እና የ regexp ቅጦችን ለመተመን ሙሉ ስርዓተ-ጥለት ጋር የተዛመዱ ገጾችን ነው. ለምሳሌ, አንድ ሂደ "abcdefgh \ n" ውጤት አስከትሏል, የሚከተለው ውጤት:

"cd" ን ይጠብቃል

የሚከተለው ዓረፍተ ነገር የተፈጸመ ያህል ነው:

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

እና "efgh \ n" በውጤት ቋት ውስጥ ይቀራሉ. አንድ ሂደቱ ውጤቱን "abbbcbkkkka \ n" ካደረገ, የሚከተለው ውጤት:

expect -indices -re "b (b *). * (k +)"

የሚከተለው ዓረፍተ ነገር የተፈጸመ ያህል ነው:

set_ expect (out of date) 1 set wait_out (0, end) 10 set expect_out (0, string) bbbcabkkkk set expect_out (1, start) 2 set wait_out (1, end) 3 set wait_out (1, string) bb set expect_out (2, ጀምር) 10 አዘጋጅ expectations_out (2, end) 10 set expectations_out (2, string) k set wait_out (buffer) abbbcabkkkk

እና "output" ውስጥ ያለው \ n ይቀራሉ. ምንም እንኳን ተጨማሪ ሂደቱን ከሂደቱ ሳነብ የ "*" (እና -በ ". *") ንድፍ ያበጣዋል.

በተለምዶ, የተጣመረ ውፅዓት ከ Expect's internal tampዎች ይጣላል. ይህ -notransfer ባንዲራ ያለበት ስርዓተ-ጥለት ቅድመ ቅጥያ በማስገባት ሊከለክ ይችላል . ይህ ዕልባት በሙከራ ጊዜው ጠቃሚ ነው (በሙከራ ወቅት ለሙከራ ሲባል አጫጭር ሊሆን ይችላል).

ከተመሳሳይ ውጤት (ወይም ኢፍል ወይም ሙሉ_በቂለቅ) ጋር የተቆራኘው ብዜት መታወቂያ expectly_out (spawn_id) ውስጥ ተከማችቷል.

የጊዜ-ዕይታ ጠቋሚ የጊዜዉን ተለዋዋጭ እሴት ከመጠቀም ይልቅ የሚከተለው እሴት እንደ የጊዜ ማብቂያ እንዲጠቀም የወቅትን ትዕዛዝ ያስገኛል.

በነባሪ, ቅርፀቶች ከአሁኑ ሂደት ውጤት ጋር ይዛመዳሉ, ግን -i (/) ምልክት ከታወቁት ቅጦች (እሰከ - i ) ጋር የሚዛመደው ከታች ከተዘረዘሩት ፓተቶች ውስጥ ነው. የ spawn_id ዝርዝር የክልል ልዩነት ያላቸው የእንቁጥር ዝርዝር (spawn_ids) ወይም የእንሰሳትን (spawn_ids) ዝርዝር የሚያመለክት መሆን አለበት.

ለምሳሌ, የሚከተለው ምሳሌ "ከአሁኑ ሂደት" ወይም "ስራ ላይት", "ያልተሳካ" ወይም "ልክ ያልሆነ ይለፍቃል" ከ $ \ pro2 ተብሎ ከተጠቀሰው \ "spawn_id \" ይጠብቃል.

expect {-i $ proc2 ስራ ላይ {busy} \ n; exp_continue} -ይ "ያልተሳካ | ትክክለኛ ያልሆነ የይለፍ ቃል" ማቋረጥ ጊዜያዊ ማቋረጥ የተያያዘ ነው}

ማንኛውም አለምአቀፍ ተለዋዋጭ_አንደ_ው_ክፍል _ _ _ _ _ _ _ _ _ በየትኛውም በአሁኑ ጊዜ ከሚጠብቀው ትዕዛዝ በሁሉም ሌሎች የ « ባንዶች ስም የተሰጣቸው ቅጦች ጋር ለማዛመድ ጥቅም ላይ ሊውል ይችላል. ከየትኛውም ተጓዳኝ ስርዓተ-ነገር ጋር (pi-ping) (ለምሳሌ, ወዲያውኑ - በሌላ) -i ) በየትኛውም የቅርጽ ትዕዛዝ ሊገኝ ይችላል ከማንኛውም_spawn_id ጋር የሚዛመድ ትዕዛዝ ነው .

-ኢ ዕልባት አለም አቀፍ ተለዋዋጭ መጠሪያ ሊለው ይችላል, በየትኛውም ጊዜ ተለዋዋጭ ለዝርያ እዝገት ዝርዝር ሊነበብ ይችላል. ተለዋዋጭ በሚለወጥበት ጊዜ ተለዋዋጭ ዳግም ይደገፋል. ይህ ትዕዛዙ በጥቅም ላይ እያለ የኢይስ ኦ / ኦ ምንጭን የመቀየር መንገድን ያቀርባል. በዚህ መንገድ የሚቀርቧቸው የሳሙና እጆች "ቀጥታ ያልሆኑ" የእንቁላል ዝርያዎች ይባላሉ.

እንደ እረፍትና መቀጠል ያሉ ድርጊቶች የመቆጣጠሪያ መዋቅሮችን (ለምሳሌ, proc ) መንስኤን ያስከትላሉ. ' Exp_continue' የሚለው ትዕዛዝ እሱ በተለምዶ እንደሚመለሰው ሳይሆን እራሱን ለማስፈፀም እንደሚቀጥል ይፈቅዳል.

ይህ ግልጽነትዎችን ወይም በተደጋጋሚ የሚጠበቁ የተስፋ ቃላትን ለማስወገድ ይጠቅማል. የሚከተለው ምሳሌ rlogin ራስ-ሰር ለማስመሰል የአንድ ቁራጭ አካል ነው. የ " exp_continue " የሚባል ነገር ቢኖር የቃለ- ቃላትን (የይለፍ ቃል) በይለፍ ቃል የሚጠይቅ ከሆነ ሁለተኛውን የተጠባባቂ ዓረፍተ ነገር ለመጻፍ (በድጋሚ ለመጠየቅ ለመፈለግ) ያስቀራል.

(የይለፍ ቃል: {stty -echo send_user ") የይለፍ ቃል (ለ $ ተጠቃሚ) በ $ አስተናጋጅ ላይ:" expect_user -re "(. *) \ n" send_user "\ n" ላክ "$ expect_out (1, string) \ r" stty "$ {answer_user}" "አስተናጋጅ አልተሳካም: $ expect_out (buffer)" exit} - የ " $ prompt)

ለምሳሌ, የሚከተለው ፍርግም ተጠቃሚው አስቀድሞ ሙሉ ለሙሉ በራስ ሰር የተቀናጀ መስተጋብርን ሊረዳ ይችላል. በዚህ ሁኔታ, ተርሚናል በጥሬ ሁኔታ ላይ ይደረግበታል. ተጠቃሚው "+" ን ከተጫነ ተለዋዋጭ እንዲጨምር ይደረጋል. "ፒ" ከተጫነ ብዙ ሪፖርቶች ወደ ሂደቱ ይላካሉ, ምናልባትም በሆነ መንገድ ሊወረውሩ ይችላሉ, እና "i" ተጠቃሚው ከሂደቱ ጋር መስተጋብር እንዲፈጥር ያደርገዋል, ይህም ከስክሪፕት ቁጥጥር ስርቆብን ሊሰርቅ ይችላል. በእያንዲንደ ሁኔታ, የሙከራ ክስተት ወቅታዊውን እርምጃ ከፈጸሙ በኋሊ የአሁኑ ሁሇተኛውን የቅርጸት ማመሊከቻ እንዱቀጥሌ ይጠብቀዋሌ .

stty raw -echo ከጠበቀው በኋላ {-i $ user_spawn_id "p" {send "\ r \ r \ r"; exp_continue} "+" {incr foo; exp_continue} "i" {መስተጋብር; exp_continue} "መውጣት" ን መውጣት}

በነባሪነት, exp_continue የጊዜ ማቅረቢያውን ጊዜ ዳግም ያስጀምረዋል. የሙከራ ጊዜ በ -continue_timer ዕልባት ከተጠራ ጊዜ ሰዓት ቆጣሪ አይደለም.

ከተጠበቀው በኋላ [wait_args]
ከሁለቱም የሚጠበቁ እና ወደፊት የሚጠብቁ ከሆነ ስርዓተ- ጥለቱ ቅርጸት ጥቅም ላይ ከዋለ ከሚጠበቀው ጋር ተመሳሳይ ነው. ለተጨማሪ መረጃ የሚጠብቀውን ትዕዛዝ ይመልከቱ.

expect_background [wait_args]
የሚጠብቀውን ተመሳሳይ ክርክር ይወስዳል, ግን ወዲያውኑ ይመለሳል. አዲስ ግብዓት ሲመጣ ቅጦች ተፈትተዋል. የስርዓቱ እረፍት ማቃለልና ነባሪው የሚገመገመውን ቦታ የሚመለከቱ እና ትርጉም የሌላቸው ናቸው. አለበለዚያ, expect_background command የሚጠብቀው ከሆነ እና እንደሚጠብቀው ከሆነ ንድፍ እንደተከተለ ያየዋል .

Expectback_background ድርጊቶች እየገመቱ ሲጠብቁ ለተመሳሳይ ማብለያ መታወቂያው የጀርባ ማቀናበር ታግዷል. እርምጃው ሲጠናቀቅ የጀርባ ማቀናበሪያ እገዳው ይታገዳል. የጀርባ ማቀነባበሪያ ታግዶ ሳለ አንድ የተበጀ መታወቂያ (ቅድመ ሁኔታ) ማድረግ ይችላል.

Expect_background unopposed while expecting to execute . አንድ አዲስ የ expect_background ከተመሳሳይ የመብሳት መታወቂያ በማስታወቅ ለአንዳንድ የፈንጂ መታወቂያን ይሰርዛል. Expect_background of pattern without pattern በመጠባበቅ ላይ የተቀመጠው የፈንጅ መታወቂያ በጀርባ ውስጥ ያሉ ንድፎችን ለማዛመድ ችሎታውን ያስወግደዋል.

ዕለታዊ [expect_args] ይጠብቃል
የሚጠብቀውን ተመሳሳይ ክርክር ይወስዳል, ግን ወዲያውኑ ይመለሳል. ከተመሳሳይ ማጭበርብር መታወቂያ ጋር ከቅርቡ በቅርብ ጊዜ የሚጠብቁት የቅጥያ ተኮር ጥሪዎች ወደፊት በሚከተሉት የትዕዛዝ ትዕዛዞች ላይ በተጨመሩ ላይ ይታከላሉ. ስርዓተ-ጥለት ከተዛመደ በተጠበቀው ትዕዛዝ እራሱ ውስጥ እንደተገለፀ ተደርጎ ይቆጠራል, እና ተጓዳኙ አካል በተጠበቀው ትዕዛዝ አገባብ ውስጥ ይፈጸማል. ከሁለቱም የሚጠበቁ ንድፎች የሚጠብቁ ከሆነ እና የሚጠብቁት ከሆነ ከቀድሞ ስሪት ጥቅም ላይ ይውላል.

ምንም ንድፍ ካልተገለጸ, የፍጥነቱ መታወቂያ ለማንኛውም ስርዓተ ጥለት አልተረጋገጠም.

በ- i ዕልባት ከተሻረ በስተቀር አስቀድመው የተጠበቀው ትዕዛዝ የተተገበረውን ( ከተፈለገው ዓይነት ጋር አይዛመድም) በተገለጸው ከተፈጠረው መታወቂያ ( አይፒ) መታወቂያ ጋር ይዛመዳል.

የ-ኢንዶ ኢንዴክሽን በአሁኑ ጊዜ የሚጣጣሙበትን የአሠራር ንድፎች ወቅታዊ መግለጫዎችን ለመመለስ ይጠበቃል. በነባሪነት, አሁን ባለው የእልቂት መታወቂያ ላይ ሪፖርት ያደርጋል. በዚያ የግራ መታወቂያ ለመረጃነት አማራጭ የግጥም መታወቂያ መግለጫ ሊሰጥ ይችላል. ለምሳሌ

expect-forex -fo -i $ proc

በአብዛኛው አንድ የእግር መፍቻ መታወቂያ ዝርዝር ሊሰጥ ይችላል. ጠቋሚው ቀጥታ ከተጣራ ዝርዝር ውስጥ የሚገኙ ቀጥተኛ የፒታይን እምብርት ነው.

ከተፈለፈፈ የመድፉ መግለጫ ይልቅ "-all-flag" ጠቋሚው ሁሉም-እንቁ-በሁሉም መረጃዎች ላይ ሪፖርት እንዲያደርጉ ያደርገዋል.

የውስጠ-ቁምፊ ምስሉ ውፅዓት እንደ ቀድሞው እንደ ቀድሞው እንደ እንደገና ጥቅም ላይ ሊውል ይችላል.

expect_tty [wait_args]
ልክ እንደ እንደሚጠብቀው ነው ነገር ግን ከ / dev / tty ገጸ-ባህሪያት ያነባል (ማለትም ከተጠቃሚው የቁልፍ ጭብጦች). በነባሪነት, ንባብ በኩላ ሁነታ ይከናወናል. ስለዚህ, መስመሮቹ በምላሽ መመለስ አለባቸው ብለን መጠበቅ እንችላለን ብለን ለመጠበቅ. ይህ በስታቲክ (ሊቀየር) ሊለወጥ ይችላል (ከዚህ በታች ያለውን የ stty ትዕዛዝ ይመልከቱ).

expect_user [expect_args]
ልክ እንደ እንደሚጠብቀው ነው ነገር ግን ከዲዲን ውስጥ ቁምፊዎችን ያነባል (ማለትም ከተጠቃሚዎች የቁልፍ ጭነቶች). በነባሪነት, ንባብ በኩላ ሁነታ ይከናወናል. ስለዚህ, መስመሮቹ በምላሽ መመለስ አለባቸው ብለን መጠበቅ እንችላለን ብለን ለመጠበቅ. ይህ በስታቲክ (ሊቀየር) ሊለወጥ ይችላል (ከዚህ በታች ያለውን የ stty ትዕዛዝ ይመልከቱ).

ራፍ
አዲስ ሂደት ይፈጥራል. አዲሱ ሂደት ወቅታዊ የሆነ የሂደት ሂደት ቅጂ ነው. በተሳካ ስኬት ፎቅ ወደ አዲሱ (የህጻን) ሂደትን ያወጣል እና የህጻኑን ሂደት ሂደትን ለወላጅ ሂደት ይመልሳል. በመሳካት (በሃብት, ለምሳሌ, የመለወጫ ቦታ, ማህደረ ትውስታ), ፎክ መልስ -1 ለወላጅ ሂደት , እና ምንም የልጅ ሂደት አልተፈጠረም.

የተሰሩ ሂደቶች ልክ እንደ ዋና ሂደት ሁሉ በመግቢያው ትዕዛዝ በኩል ይወጣሉ . የተቀነባበሩ ሂደቶች ወደ መዝገቦች ፋይሎች እንዲጽፉ ይፈቀድላቸዋል. ማረምን ካላሰናከሉ ወይም በአብዛኛዎቹ ሂደቶች ውስጥ መግባት ካልቻሉ, ውጤቱ ግራ የሚያጋባ ሊሆን ይችላል.

አንዳንድ የፒቲ አተገባበርዎች ለጊዜውም ቢሆን በበርካታ አንባቢዎች እና ጸሐፊዎች ግራ ሊጋቡ ይችላሉ. ስለዚህ, እንቁላል ከመፍጠር በፊት ከመጠን በላይ አመላካች ነው.

interact [string1 body1] ... [ሕገወጥ] [አካል]]
የአሁኑን ሂደትን ለተጠቃሚው ይቆጣጠራል, በዚህም የቁልፍ ጭነቶች ወደ ወቅታዊ ሂደቶች እንዲላኩ ይደረጋል , እና የአሁኑ ሂደቱን አሻራ እና አሻራ ይመለሳል.

String-body pairs ጥንቅርን እንደ ነጋሪ እሴቶች ሊገልጹ ይችላሉ, በዚህ ጊዜ ተጓዳኝ ህብረቁምፊ ሲገባ አካል እንዲፈጸም ሊደረግ ይችላል. (በነባሪነት ሕብረቁምፊ ወደ የአሁኑ ሂደት አይልክም .) የአካል ክፍሉ የሚጠፋ ከሆነ የአስተርጓሚው ትዕዛዝ ይገመታል.

በመላው የዝውውር ጥያቄ ውስጥ ከአንድ በላይ መስመር ያስፈልጋቸዋል, እያንዳንዱን መስመር በጀርባ ማቆም ላይ እንዳይቋረጥ ለማስቻል ሁሉም ክርክሮች ወደ አንድ "የተጣመመ" ሊሆኑ ይችላሉ. በዚህ ጉዳይ ላይ, ጥርስ ቢኖርም የተለመደው የቲ.ሲ መለኪያዎች ይከሰታሉ.

ለምሳሌ, የሚከተለው ትዕዛዝ ከሚከተለው የሚከተለው ሕብረቁምፊ-አካላት ጥንዶች ጋር መስተጋብር ይፈጥራል-«^ Z ሲጫን, የወደፊት ዕይታ ይቋረጣል. (የ -ሪቴክ ጥቆማ የባንኩውን ሞዴሎች ያድሳል). ^ A ሲጫን, ተጠቃሚው " መቆጣጠሪያ-A ተይብሃል " እና ሂደቱ «A» ይላካል. $ ሲጫን, ተጠቃሚው ቀኑን ይመለከታል. ^ C ሲጫን, መውጫዎች ይጠብቁ . "Foo" ከገባ, ተጠቃሚው "አሞሌ" ይመለከታል. ~ ~ ሲጫን, የሚጠበቀው ተርጓሚ በይነተገናኝ ነው.

CTRLZ \ 032 መስተጋብር {-reet $ CTRLZ {exec kill -STOP [pid]} \ 001 {send_user \ "\" ተቆጣጠራል-\ \ "\ n \ n"; "\ 001"} ላክ "$ {send_user" "ቀኑ [ሰዓት ቅርጸት [የሰዓት ሰከንዶች]]."} \ 003 exit foo {send_user "bar"} ~~}

በባህሩ-አካላት ጥንድ ላይ, ሕብረቁምፊዎች እንደ ክርክር ውስጥ ከተመዘገቡት ጋር ይዛመዳሉ. ከፊል ጋር የሚዛመዱ ሕብረቁምፊዎች ቀሪው የሚመጣበት ብድር በወቅቱ ወደ አሁኑ ሂደት አይላኩም. ከዚያ ገጸ ባሕሪዎች ከዚህ በኋላ ሊሆኑ የማይችሉ ከሆኑ ከዚያ የሕብረቁምፊው ክፍል ብቻ ሌላ ግጥሚያ ለመጀመር የማይቻል ሂደት ውስጥ ይላካሉ. ስለዚህም, ግጥሚያ ለመሞከር የሞከሩት የመጀመሪያው ሕብረቁምፊዎች ማሸነፍ ከጀመሩ ከፊል ተዛማች ንኡስ ክዋክብቶች በኋላ ላይ ሊመሳሰሉ ይችላሉ.

በነባሪነት የሕብረቁምፊ ማመሳሰል የሌላቸው የዱካ ካርዶች ትክክለኛ ነው. (በተቃራኒው, የተጠበቀው ትዕዛዝ በነባሪነት የአለም አቀፍ ቅጦችን ይጠቀማል.) የ -ex ምልክት ባንዲራዎች ባንደሮችን ከማዛመድ ጋር የሚዛመዱ ቅጦችን ለመጠበቅ ጥቅም ላይ ሊውል ይችላል. ማንኛውም በ "-" የሚጀምረው በዚህ መልኩ የተጠበቀ ነው. (በ «-" የሚጀምሩ ሁሉም ሕብረቁምፊዎች ለወደፊት አማራጮች የተያዙ ናቸው.)

የሪ-ሲት ጠቋሚው ሕብረቁምፊ እንደ regexp-style pattern እንዲተረጎም ያስገድፋል. በዚህ አጋጣሚ ተዛማጁ ንኡሳት ሕብረቁምፊዎች በተለዋዋጭ interact_out ውስጥ በእሱ ተለዋዋጭ expect_out ውስጥ ውጤቱን ያከማቻል ከሚልበት መንገድ ጋር ይቀመጣል . የ- ኢንዲኔሽን ሰንደቅ በተመሳሳይ መልኩ ይደገፋል.

የፋይሉ ምሳሌ በፋርማ -መጨረሻ ላይ የተፈጸመ ድርጊት ያዋቅራል . በሌላ የኤሌክትሮኒክስ ንድፍ ደግሞ የውጫዊ ጠቋሚን ሊከተል ይችላል, በዚህ ሁኔታ ውስጥ ኢፍል ሲጻፍ ከተደረሰበት ጋር ይዛመዳል. ነባሪው እርምጃው «ተመለስ» ነው, ስለዚህ ከማስተባበር ጋር ማንኛውም በ EOF ይመልሳል.

የስርዓተ- ቆመ ጊዜ ማቆም የጊዜ ማቆያ (በሴኮንዶች) እና በተወሰነ ጊዜ ውስጥ ምንም ቁምፊዎች ከተነበቡ በኋላ የተፈጸመ ድርጊት ነው. የሰዓት ማቋረጫው በጣም በቅርብ ለተሰየመው ሂደት ተግባራዊ ይሆናል. ምንም ነባሪውን ጊዜ ማብቂያ የለም. ልዩ ዘየራ "የእረፍት ጊዜ" ( በተጠበቀው ትዕዛዝ ውስጥ ጥቅም ላይ የዋለ) በዚህ ጊዜ ማብቂያ ላይ ምንም ተጽዕኖ አይኖረውም.

ለምሳሌ, የሚከተለው ዓረፍተ ነገር ለኣንድ ሰዓት ያህል ያልተፃፉ ነገር ግን አሁንም በተደጋጋሚ የስርዓት መልዕክቶችን ለሚጠቀሙ ተጠቃሚዎች እራስዎ ጥቅም ላይ ሊውል ይችላል:

በይነተገናኝ - ግቤት $ user_spawn_id ጊዜው 3600 ተመላሽ -የይተም \ $ spawn_id

ምሳሌው የቁልፍ ቃል ናቁር ነው , እና nullዎች ይፈቀዳሉ (በ remove_nulls ትዕዛዝ በኩል), አንድ ASCII 0 ተዛማች ከተመሳሳይ ተኪው ይፈጸማል . በ 0 ባይት በስፋት ወይም በ regexp ቅጦች ጋር ማዛመድ አይቻልም.

ከባንዲራ -iwrite ስርዓተ- ቀመር መምረጥ ተለዋዋጭ ተለዋዋጭ-ተለዋዋጭ ("spawn_id") ወደ "spawn_id" እንዲቀናጅ ያደርገዋል (ከኤፍ).

እንደ እረፍትና መቀጠል ያሉ ድርጊቶች የመቆጣጠሪያ መዋቅሮችን (ለምሳሌ, proc ) መንስኤን ያስከትላሉ. ይሁን እንጂ ተመላልሶ መጠይቅ ወደ ደዋይው ለመመለስ መስተጋብር ይፈጥራል, በድርጠ-መስተካከል ለተመልካች መመለስን መንሳት . ለምሳሌ, "proc foo" በይነተገናኝ ከተጠለቀ በኋላ ድርጊቱን inter_return ከፈጸመ proc proc የው ይመለሳል. (ይህ ማለት ተርጓሚ በአስተያየት ከተፃፈ ከተቀባይ መመለሻውን እንዲቀጥል ካደረገ ግንኙነቱ እንዲቀጥል ያስችላል , በድር መካከል ያለው ግንኙነት ወደ ደዋይው እንዲመለስ ማድረግ ይጀምራል.)

በይነተገናኝ ጊዜ , ጥሬ ሁነታ ጥቅም ላይ ይውላል, ሁሉም ቁምፊዎች ወደ ወቅታዊ ሂደት እንዲተላለፉ ይደረጋል . የአሁኑ ሂደቶች የሥራ መቆጣጠሪያ ምልክቶችን ካልያዙ, የማቆም ምልክት (በ ነባሪ ^ Z) ከተላከ ይቆማል. እንደገና ለማስጀመር የመቀጠል ምልክት ይላኩ (እንደ "KONT ይገድሉ"). ለእንደዚህ አይነት ሂደት (በ ^ Z) SIGSTOP ለመላክ ከፈለጉ የመጀመሪያውን ሲቲ ማጭበርበክ ከዚያም የፕሮግራሙን ማስኬድ ይጀምሩ. በሌላ በኩል ደግሞ እራስዎ የሚጠበቅበትን SIGSTOP ለመላክ ከፈለጉ, መጀመሪያ በመተርጎም አስተርጓሚ (ምናልባትም በስውር ገጸ-ቁምፊ በመጠቀም) ይጫኑ, ከዚያም «^ Z ን ይጫኑ.

የማጣቀሻ-አካላት ጥምረቶች በአስተርጓሚ ውስጥ ማስገባት እና በትርጉም ትዕዛዞችን ማስፈጸም ለማስቀረት እንደ አጻጻፍ ጥቅም ላይ ሊውሉ ይችላሉ. የቀድሞው የሞተሩት ሁነታ ጥቅም ላይ የሚውለው የአንድ ሕብረ ቁጭ-አካል ስብስብ አካል በመፈጸም ላይ እያለ ነው.

ለፍጥነት, በነባሪ ሁነታ ጥገኛ ነው የሚፈፀሙት. የ- ሰርኬት ጥቁር ተኪው ከመተላለፉ በፊት በነበረው ሁነታ ( ተለዋዋጭ , የበሰለ ሁናቴ) ላይ ያለውን መናኸሪያ ዳግም ያስጀምረዋል. ሁነታው እየተለዋወጠ እያለ የገቡ ገጸ-ባህሪያት ጠፍተው ሊሆኑ እንደሚችሉ ልብ ይበሉ (በአንዳንድ ስርዓቶች ላይ የዘመናዊ ሾፌር መጥፎ አጋጣሚ ነው). < Reet > የሚጠቀመው ብቸኛው ምክንያት እርስዎ በኩኪት ሁነታ ላይ በመሄድ ላይ ከሆነ ነው.

-echo ጠቋሚው ከእያንዳንዱ ቅርፅ ጋር የሚዛመዱ ቁምፊዎች እያንዳንዱ ቁምፊ ሲነበቡ ወደነበሩበት ሂደቶች ይላካል . ተጠቃሚው በከፊል ከተተየባቸው ስርዓቶች ግብረመልስ ለማየት ሲፈልግ ይህ ጠቃሚ ሊሆን ይችላል.

ስርዓተ-ጥለት ተስተካክሎ ቢጠፋም በመጨረሻ አልተመሳሰለም, ቁምፊዎቹ ወደ ተፈለገው ሂደት ይላካሉ. የተፈጠረ ሂደቱ መልእክቶቹን ከተመለሰ ተጠቃሚው ሁለት ጊዜ ይመለከታል. -ቾ ምናልባት ተጠቃሚው ስርዓቱን እንደማያጠናቅቅ በሚያስብባቸው ሁኔታዎች ውስጥ ብቻ ተስማሚ ሊሆን ይችላል. ለምሳሌ, የሚከተለው ክምችት ከ rftp, እንደ recursive-ftp ስክሪፕት, ተጠቃሚው ወደ ~ g, ~ p ወይም ~ l ለመግባት, አሁን ያለውን የአድራሻ ቅደም ተከተል ለመደርደር, ለመጥቀስ ወይም ለመጥቀስ ከተነሳበት ነው. እነዚህ ከተለመዱ የ FTP ትዕዛዞች በጣም ርቀው ይገኛሉ, ተሳታፊው በስህተት ከተጠቀሰው በስተቀር ማንኛውንም ነገር ተከትሎ የማይተገበር ይሆናል, እንደዚያ ከሆነ ምናልባት ውጤቱን ችላ ማለታቸው አይቀርም.

መስተጋብር {-echo ~ g {getcurdirectory 1} -echo ~ l {getcruptirectory 0} -echo ~ p {putcurdirectory}}

የ- ኑuffፊ ሰንደቅያት ገጸ-ባህሪያት እንደተነበቡ ከከታይ ስርዓተ-ጥለት ጋር የሚዛመዱ ቁምፊዎችን ይልካል.

አንድ ፕሮግራም ስርዓተ-ጥለት እንዲመልስ ሲፈልጉ በጣም ጠቃሚ ነው. ለምሳሌ, አንድ ሰው ሲደውል ለመከታተል የሚከተለውን መቆጣጠር (የሄኔስ-ቅጥ ሞደም). በእያንዳንዱ ጊዜ "ታድ" የታየበት ስክሪፕት የተቀረው መስመር ነው.

proc lognumber {} {interactive -nobuffer -re "(. *) \ r" መልስ $ log "[ሰዓት ቅርጸት [የሰዓት ሰከንዶች]] ያካትታል: $ interact_out (1, string)"} "interactive-nuffuffer" atd "የምዝግብ ቁጥር

በይነተገናኝ ጊዜ , የቀድሞው log_user አጠቃቀም ችላ ይባላል. በተለይም መስተጋብር ተጠቃሚው በጭራሽ ከአስተያየት ጋር መገናኘት እንደማይፈልግ ተደርጎ ስለሚታሰብ ውህደቱ እንዲገባ ይገደዳል (ለተለመደው ውፅዓት ይላካል).

የ-o ሰንደቅ (መጠቆሚያ) ማንኛውም የ "ቁልፍ- አካውን" ጥምረቶች በአሁኑ የአሠራር ውጤት ላይ እንዲተገበሩ ያስችላቸዋል . ይህ ለምሳሌ በ telnet ክፍለ ጊዜ ላይ ያልተፈለጉ ባህሪዎችን የሚልኩ አስተናጋጆችን ሲያስተናግድ ጠቃሚ ሊሆን ይችላል.

በነባሪነት, በይነግንኙነት ተጠቃሚው የ "እትም" ን የ "ስሪት" እና "የ" ን የ "ንዑርት አይነቶችን" ን ለማንበብ ይጠብቃል. የ-u ጠቋሚ (ለ "ተጠቃሚ") ተጠቃሚው በክርክርው እንደ ሂደቱ (እንደ መጭመቂያ መታወቂያ) መሆን አለበት.

ይህም በግልጽ ያልተዛባ አኳኋን ሳይጠቀሙ ሁለት ያልተዛመዱ ሂደቶችን አንድ ላይ እንዲቀላቀሉ ያደርጋል. ለማረም ለመርዳት, ምርመራዎች ሁልጊዜ እንደሚጠወሉ (ወይም ለተወሰኑ የምዝግብ ማስታወሻ እና የማረሚያ መረጃ). በተመሳሳይ ምክንያት, የትርጁማን ትዕዛዝ ከሂትለር ጋር በትርጉም ይነበባል.

ለምሳሌ, የሚከተለው ቁራጭ የመግቢያ ሂደት ይፈጥራል. ከዚያም ተጠቃሚውን ይደውላል (አይታዩም), በመጨረሻም ሁለቱንም አንድ ላይ ያገናኛል. በእርግጥ, ማንኛውም ሂደት ለመግባት ሊተካ ይችላል. ለምሳሌ አንድ ሼል ተጠቃሚው ሂሳብ እና የይለፍ ቃል ሳያካትት እንዲሰራ ያስችለዋል.

"የልብ ወፍ" "መግቢያ" "መግጠም" "$ spawn_id" "የልጆች ጫፍ" "ሞደም #

ውህደትን ወደ በርካታ ሂደቶች ለመላክ, -out ግቤት ባስቀመጠው እያንዳንዱ የዝርያ መታወቂያ ዝርዝር ይጻፉ . ለቡድን ውጤት ማብለያዎች ግቤት አንድ ግብዓት በ " ኢንሳይት" ዕልባት ይከተላል . (የሁለቱም- ግብዓቶች እና -outጫዊ ትዕዛዞች በተጠበቀው ትዕዛዝ ውስጥ- i ምልክት በተለየ ቅርጸት ውስጣዊ ዝርዝሮችን ሊወስድ ይችላል, ከሚከተለት ውስጥ ማንኛውም_በፍ -_ዋ_ይይት በእውነተኛ ግንኙነት ውስጥ ትርጉም የሌለው ነው.) ሁሉም የሚከተሉ ባንዲራዎች እና ሕብረቁምፊዎች (ወይም ቅጦች) የግብዓት ጠቋሚ ብቅ ይላል. ምሌክ የማይታይ ከሆነ, የውጫዊ ተፅዕኖዎች "-የ $ user_spawn_id -output" ን አስገባ. (በተመሳሳይ መልኩ, የሌላቸው ቅጦች - ግቤት .) አንድ- ግቤት ከተገለጸ $ user_spawn_id ን ይሽራል. ሁለተኛ- ግቤት ተለይቶ ከተቀመጠ , $ spawn_id ይሽራል. ተጨማሪ- የግቤት እልባቶች ሊገለፁ ይችላሉ.

ሁለቱ ተያያዥ የግቤት ሂደቶች ነባሪ ውጤቶቻቸውን እንደ $ spawn_id እና $ user_spawn_id (በተቃራኒ) እንዲገለጹ ነድ. አንድ- ኢንሳይት ጥቆማ ያለ -ጥብያ ጠቋሚ ካልተቀመጠ ከዚያ ሂደት ውስጥ ያሉ ቁሶች ይጣላሉ.

የ- i ጥቁር ሌላ -በ-ውፅዓት ወይም -out-ውጫዊ ባንዶች ጥቅም ላይ በማይውልበት ጊዜ አሁን ለ spawn_id ምትክ ያስተዋውቃል. ኤ-ፒ ባንዲ-a ባንዲራ ያመላክታል.

ተፈጥሮአዊ የሆኑ የድንጋይ ክምችቶችን በመጠቀም ሊስተጓጎሉ የሚችሉ ሂደቶችን መቀየር ይቻላል. (ቀጥታ የሆኑ የፕሪም ኤጅ ዊዶች በተጠበቀው ትዕዛዝ ክፍል ላይ ተገልጸዋል.) ቀጥተኛ ያልሆኑ እንሽላሊቶች በ -i, -u, -intput ወይም / output ባንዲራዎች ሊገለጹ ይችላሉ.

ተርጓሚ [ነጋሪት]
ተጠቃሚው ለ Expect እና Tcl ትዕዛዞች እንዲስተጋባ ያደርገዋል. የእያንዳንዱ ትዕዛዝ ውጤት ይታተማል.

እንደ እረፍትና መቀጠል ያሉ ድርጊቶች የመቆጣጠሪያ መዋቅሮችን (ለምሳሌ, proc ) መንስኤን ያስከትላሉ. ይሁን እንጂ ተመልሶ አስተርጓሚው ወደ ጥሪው እንዲመለስ ያስገድዳል , በቋሚ ተርጓሚ አስተርጓሚው ለጥሪው እንዲመለስ ያደርጋል. ለምሳሌ, "proc foo" አስተርጓሚ ካገኘ በኋላ ድርጊቱን በድርጊት አከናውኖ ከሆነ proc ûoo ተመልሶ ይመጣል. ማንኛውም የትርጉም ትዕዛዝ ለአዳዲስ ትዕዛዞች መሥራቱን ለመቀጠል ያስችላቸዋል.

በነባሪ, ጥያቄው ሁለት ኢንቲጀሮች ይዟል. የመጀመሪያው ኢንቲጀር የግምገማውን ጥልቀት (ጥራቱን ስንት ጊዜ እንደተጠራ) ይገልጻል. ሁለተኛው ኢንቲጀር የቲኤክ ታሪክ መለያ ነው. ጥያቄው "ማሳሰቢያ 1" የሚባለውን የአሰራር ሂደትን በመወሰን ቀጠሮ ማስገባት ይቻላል. መግለጫው ክፍት ጥቅሶችን, መማሪያዎችን, ጥምሶችን ወይም ቅንፎችን ቢነግር ሁለተኛውን ተከትሎ (በነባሪ "+" "") በአዲሱ መስመር ላይ ይሰጣል. ሁሇተኛውን ሌዩ "ጥያቄ 2" የሚባሇውን አሰራር በመወሰን የተወሰነ ነው.

አስተርጓሚው በጥሩ ሁኔታ ላይ ቢጠራቅም የተበጀ ሁናቴ ጥቅም ላይ ይውላል.

STdin ተዘግቶ ከሆነ -በአካለ- ምልክት ላይ ካልዋለ በስተቀር, ከዚያ በኋላ የተከሰተው ነጋሪ እሴት ሲጠራ አስተርጓሚው ይመለሳል.

log_file [args] [[-a] file]
አንድ የፋይል ስም ከተሰጠ , የመዝጊያ / ምዝግብ ማስታወሻው (በወቅቱ ከጀመረ ጀምሮ) በፋይል ውስጥ ቅጂውን ይመዘግባል. ምንም ነጋሪ እሴት ካልቀረበ መዝገብ_ ፋይል ያቆማል. ማንኛውም ቀዳሚ የምዝግብ ማስታወሻ ፋይል ተዘግቷል.

ከፋይል ስም ይልቅ የ Tcl ፋይል መለያ--open ወይም -seaveen ጠቋሚዎችን በመጠቀም ሊሰጥ ይችላል. ይህ ከጨርቁ ትዕዛዝ ተመሳሳይ ነው. (ለተጨማሪ መረጃ ወለደች .)

በ-log_user ትዕዛዝ የተጨመረው - ባንዲራ ጥቁር ግብረ- ተፈጽሞ ገብቶ ነበር.

በነባሪ, የ log_file ትዕዛዝ በመጥለፍ እና በአንድ ክፍለ ጊዜ ውስጥ ተደጋግሞ ለመጥለፍ ለማመቻቸት ከመጥቀስ ይልቅ አሮጌ ፋይሎችን ወደ አሮጌ ፋይሎችን ይቀይራል . ፋይሎችን ለመቁረጥ የ-noappend ጠቋሚውን ይጠቀሙ.

የ- ኢንዶ ፕላኔት ሪፖርትን የተሰጠው በጣም ቅርብ ጊዜ ያልሆኑ መረጃን ለመግለጽ log_file ያመጣል.

log_user -info | 0 | 1
በነባሪ, የተላከ / የወደፊት መገናኛው ወደ መጋረጃ (እና የተከፈተ ፋይል ካልሆነ) ይመዘገባል. ወደ ቂድደር መግባቱ በ "log_user 0" ትዕዛዝ ተሰናክሏል እና በ "log_user 1" እንደገና ተዋቅሯል. ወደ ማስታወሻ ፋይሉ መመዝገብ አልተቀየረም.

የ- ኢንዶ ኢንዴክሽን ሎግ-ሰሪን የሚገልጸውን በጣም የቅርብ ጊዜውን ያልታዩ ክርክሮች ገለጣ እንዲመልስ ያደርገዋል.

match_max [-d] [-i spawn_id] [መጠን]
በጠበቀው ጊዜ ውስጥ ጥቅም ላይ የሚውል የፍራፍሬውን መጠን (በ bytes) ይገልጻል. ምንም የመጠን ነጋሪ እሴት ባይኖር, የአሁኑ መጠን ተመልሷል.

-ዲ ባንዲራ ነባሪው መጠን ተቀናብሯል. (የመጀመሪያ ነባሪው 2000 ነው.) በ -ኢ ዕልባት, መጠኑ ለታወቀ ለተፈለገው መታወቂያ ነው, አለበለዚያ ለአሁኑ ሂደት ተዘጋጅቷል.

ተደራቢ [- # spawn_id] [- # spawn_id] [...] program [args]
"የፕሮግራም ድግስ" ን በመተግበር የአሁኑን "መርሃግብር" መርሐግብር ይተካል. የትራፊክ መክፈያ ፍርግም ከትዕዛዝ ስም ፊት እንደ የመግቢያ ሼል ያለ አቆራኝ ጥንካሬ ያስገድዳል. ሁሉም የፈጠሩት_ችት እንደ ክርክሾች ከተጠቀሱት በስተቀር ተዘግተዋል. እነዚህ በተመረጡት የፋይል መለዮዎች ላይ ካርታ ላይ ይቀርባሉ.

Spawn_ids ለአዲሱ መርሃግብር ለመቅረጫ ፋይሎች ለፋይሎች ይዘጋጃሉ. ለምሳሌ, የሚከተለው መስመር ቼሾን ይይዛል እና በአሁኑ ሂደት ቁጥጥር እንዲደረግበት ያስችለዋል - የቼዝ ጌታ.

ተደራቢ -0 $ spawn_id -1 $ spawn_id-2 $ spawn_id chess

ይህ ከ "በይነ-ወጥ" ("inter-u") የበለጠ ውጤታማ ነው, ሆኖም ግን, የሚጠብቀው ሂደት ከአሁን በኋላ በቁጥጥሩ ስር ስለማይገኝ የፕሮግራም መስተጋብርን ለመሥራት ይከፍታል .

ምንም ዓይነት ተቆጣጣሪ ተርሚናል እንደማይቀርብ ልብ ይበሉ. ስለዚህ መደበኛ ግንኙነትን ካቋረጡ ወይም እንደገና ካስተካከሉ, የሥራ መቆጣጠርያ (ሼለሮች, መግቢያ, ወዘተ) የሚሰሩ ፕሮግራሞች በአግባቡ አይሰሩም.

እኩልነት [-d] [-i spawn_id] [እሴት]
ተመጣጣኝ እኩልነት መቆጠር እንዳለበት ወይም ከተፈጥሮ ሂደቱ ተለይቶ መወገድ እንዳለበት ይገልፃል. እሴት ዜሮ ከሆነ, እኩልነት ይሻላል, አለበለዚያ አይጣልም. ምንም ዋጋ እሴት ከሌለ, የአሁኑ እሴት ተመልሷል.

-ዲ እልባቱ, የነባሪ እኩልነት ዋጋ ተዘጋጅቷል. (የመጀመሪያ ነባሪው 1 ነው, ማለትም, እኩልነት አልተሸነፈም.) በ-i ሰንደቅ, የተቆራጩ ዋጋ ለተፈለገው የእሽታው መታወቂያ ተዘጋጅቷል, አለበለዚያ ለአሁኑ ሂደት ተዘጋጅቷል.

remove_nulls [-d] [-i spawn_id] [value]
በተለዋዋጭ expect_out ወይም interaction_out ውስጥ ከማከማቸት በፊት ወይም በማከማቸት ከተፈጠረ ሂደቶች ውስጥ nulls መቆለፉን ወይም መወገድ እንዳለበት ይገልፃል . እሴት 1 ከሆነ ዋጋዎች ይወገዳሉ. እሴት 0 ከሆነ, nulls አይወገዱም. ምንም ዋጋ እሴት ከሌለ, የአሁኑ እሴት ተመልሷል.

-ዲ ጥቆማ ሲሆን ነባሪው ዋጋ ተዘጋጅቷል. (የመጀመሪያ ነባሪው 1 ነው, ማለትም nulls ተወግደዋል.) በ- i ሰንደቅ ዓላማ, ዋጋ ለተፈለገው የእሽታው መታወቂያ ተዘጋጅቷል, አለበለዚያ ለአሁኑ ሂደት ተዘጋጅቷል.

Nulls ይተው እንደሆነ, Expect ወደ null bytes እና መዝገብን ይይዛል.

ለ [-flags] ሕብረቁምፊ ላክ
ሕብረቁምፊ ወደ የአሁኑ ሂደት ይልካል. ለምሳሌ, ትዕዛዙ

«ሠላም ዓለም \ r» ን ላክ

ገጸ-ባህሪያትን ወደ ሲኦል እንዲልክ ይልካል. (Tcl ውስጥ ገለልተኛ እና ውስብስብ ሕብረቁምፊዎች ሊገነባ የሚችል የህትመት አይነት (ትዕዛዝ ቅርጸት ) ያካትታል.)

የመልሶ ማጫዎቻዎቹ የተላኩ ቢሆንም ገመድ-ቻጭ የተገቢው ግብዓቶች ፕሮግራሞች ገጸ-ባህሪያትን አያነበቡም, ሆኖም ገጸ-ባህሪያት ወዲያውኑ ይላካሉ. የምላሽ ቁምፊ "\ r" ነው.

- - ጠቋሚው የሚቀጥለው ሙግት ከባንዲንግ ይልቅ እንደ ሕብረቁምፊ ይተረጎማል. "-" ማንኛውም ሕብረቁምፊ እንደ ጠቋሚ ቢመስልም ይቀርባል. ይህ አስተማማኝ በሆነ መልኩ ጠቋሚዎችን የሚመስሉ ሳይነጣጠሉ ተለዋዋጭ ሕብረቁምፊዎችን ለመለየት አስተማማኝ ስልት ያቀርባል. (በ «-" የሚጀምሩ ሁሉም ሕብረቁምፊዎች ለወደፊት አማራጮች የተያዙ ናቸው.)

የ-አይ ሰንደቁ ሕብረቁምፊ ወደ "spawn_id" ይላካል. Spawn_id user_spawn_id ከሆነ, እና ተርሚናል በጥሩ ሁኔታ ላይ ከሆነ, በሽፋዩ ውስጥ ያሉ አዲስ መስመሮች ወደ ማዞሩ-አዲስ መስመር ቅደም ተከተሎች ይተላለፋሉ ምክንያቱም ተርሚናል በብሩክ ሁነታ ላይ ይመስላሉ. የ -ፍራ ሰንደቁ ይህን ትርጉም ያሰናክለዋል.

-ኖል ባንዴራዎች ቁምፊዎች (0 ባይት) ይልካሉ. በነባሪ, አንድ ባዶ ይላካል. ኢንትሪን ( ኢንቲጀር) በ ( Null) ላይ ሊከተል ይችላል-nulls እንዴት እንደሚላክ ለማመልከት.

የመንኮራክቱ ጠቋሚ የእረፍት ሁኔታን ይፈጥራል. የተፈለገው መታወቂያ "ማሽተት-ኦፔን" የተከፈተ "የቲቲ" መሣሪያን የሚያመለክት ከሆነ ይሄ ትርጉም ይሰጣል. እንደ ጠቃሚ ምክር የመሳሰሉ ሂደቱን ከፈጠሉ, እረፍት ለማመን የጠቃሚ ምክኒያት ስምምነት መጠቀም አለብዎት.

የዴስ- ጠቋሚ ጥረቶች ውህደት እንዲላክ "በቀስታ" ይላካሉ, ስለዚህ አንድ ኮምፒዩተር አንድ ቋጥኝ ለሌለው ሰው የማይነቃነቅ ድብልቅ የሆነ የኮምፒተር ማደያ ገዢው ከሚያስቀምጠው የተለመደ ሁኔታ ይርቀቁ. ይህ ውጤት ሁለት ኤለመንት ዝርዝር የሚወስድ "send_slow" ተለዋዋጭ እሴቱ ነው. የመጀመሪያው አንፃፍ በአቶሚክ ለመላክ የባይት ቁጥርን የሚገልጽ ኢንቲጀር ነው. ሁለተኛው አንጓ ደግሞ የአቶሚክ መልእክቶችን የሚልክበት ሰከንዶች የሚለያይ መሆን እንዳለበት የሚገልፅ ትክክለኛ ቁጥር ነው. ለምሳሌ, "send_slow {10 .001}" ን መጫን "እያንዳንዱን 10 ፊደላት በ 1 ማይ ሴከንድ መካከል ስሞችን ለመላክ" send -s "ያስገድዳል.

--- h የባንዲራ ጥንካሬዎች ልክ እንደ ሰው መተየብ እንዲችሉ (በተወሰነ መጠን) እንዲላክ ይደረጋል. በሰው-ልክ መዘግየቶች በቁምፊዎች መካከል ይታያል. (ስልተ ቀመር የተመሠረተው በዌይቡል ስርጭት ላይ ነው, ይሄንን ልዩ ማመቻቸት ጋር የተዛመዱ ማስተካከያዎችን ነው.) ይህ ውጤት የሚለካው የአምስት አባል ዝርዝር በመጠቀም የ "send_human" ተለዋዋጭ እሴት ነው. የመጀመሪያዎቹ ሁለት አባላቶች በሰከንዶች ውስጥ በአማካይ በድርድር መካከል ያለው የጊዜ ክፍልፍሎች ናቸው. የመጀመሪያው በመደበኛነት ያገለግላል. ሁለተኛው ጥቅም ላይ የሚውለው በድርድር መጨረሻ ላይ በሚገለጥባቸው ጊዜያት ላይ የሚከሰቱ ስዕላዊ ቆይታዎችን ነው. ሦስተኛው መመዘኛ የ "1" ተለዋዋጭ መለኪያ ሲሆን የ «1» ተለዋዋጭነት ያለው ሲሆን 1 በተለዋጭ ተለዋዋጭ ሲሆን 10 ደግሞ ፈጽሞ የማይለዋወጥ ነው. ጽንሱ 0 ለመጨረሻ ጊዜ ነው. የመጨረሻዎቹ ሁለት መመዘኛዎች በየቀኑ ቢያንስ እና ከፍተኛውን የጋራ መስተካከያ ጊዜ ነው. የመጨረሻው እና ከፍተኛው የመጨረሻ እና የመጨረሻውን "ቅንጥብ" ጥቅም ላይ ይውላሉ. የመጨረሻው አማካይ አነስተኛና ከፍተኛ የሆነ የሙዚቃ ቅንጥብ ዋጋዎች ካላቸው ከሚሰጠው አማካይ ልዩነት ሊኖረው ይችላል.

ለምሳሌ, የሚከተለው ትዕዛዝ ፈጣን እና የማይለዋወጥ የቋንቋ ዘይቤን ይመሰክራል:

send_human {.1 .3 1 .05 2} አስቀምጥ -h "እኔ ርቦኛል, ምሳ እንመጣለን."

ቀጥሎ ከተዘረዘሩት መካከል የሚከተሉት የተሻለ ሊሆኑ ይችላሉ.

send_human {.4 .4 .2 .5 100} send -h "ድብቅ ፓርቲ ድብ ማታ!"

በምላክ እሴት ውስጥ ስህተቶችን እና እርማቶችን በማካተት ስህተቶች እርማት እራስዎ ማስተካከል ቢችሉም ስህተቶች አይመከሩም.

ባዶ የሆኑ ቁምፊዎችን የሚላኩበት ባንዲራዎች, እረፍቶችን ለመላክ, ቀስ ብሎ ውጤትን ለማስገደድ እና ለሰብ ቅደም ተከተል ውጤት ለማስገደድ በአንድ ላይ የሚጣመሩ ናቸው. የመጨረሻውን ብቻ የተጠቀሰው ብቻ ነው ጥቅም ላይ የሚውለው. በተጨማሪም, የቁምፊዎች ነጋሪ እሴቶችን ለመላክ ወይም ለማቆም ባንዲራዎች ሊገለጹ ይችላሉ.

ከመጀመሪያው ወደ አንድ ሂደትን በጠበቀው ከመቀጠል መነሳት ጥሩ ሀሳብ ነው. የሂደቱ ሂደት እስኪጀምር ድረስ ይጠብቃል , ነገር ግን መላክ አይችልም. በተለይ ሂደቱ ሂደቱ ከመጀመሩ በፊት ከተጠናቀቀ, ውሂብዎን ችላ ማለት አደጋውን ያጥላሉ. በይነተገናኝ ፕሮግራሞች ላይ የመጀመሪያውን መልስ የማያቀርቡባቸው ሁኔታዎች በሚፈጠሩበት ጊዜ, በሚከተለው ጊዜ እንደሚከተለው ነው-

# ጠላፊዎች እንዴት መፍታት እንደሚችሉ ጠቋሚዎችን ለመስጠት, ይህ ስርዓት ለውጭ የይለፍ ቃል አይሰጥም. # ተጠናቆ ማጠናቀቅ ለ 5 ሰከንድ ይጠብቃል. Telnet very.secure.gov እንቅልፍ 5. የይለፍ ቃል ይላኩ

exp_send ለመላክ ቅጽል ስም ነው . Expectk ወይም ሌላ አንዳንድ የ Expect of Expect in Tk አካባቢ ከተጠቀሙ, መላክ ሙሉ ለሆነ ዓላማ በ Tk ይገለፃል. exp_send ለአካባቢያዊ ተመጣጣኝነት ይቀርባል. ተመሳሳይ ለሆኑ ሌሎች የሉዕ ትዕዛዞችን ተመሳሳይ ተመሳሳይ ስም ያላቸው መረጃዎች ይሰጣሉ.

send_error [-flags] string
ውጤቱ አሁን ካለው ሂደቱ ይልቅ ወደ ውጤቱ የሚላከው ካልሆነ ልክ እንደ መላክ ነው.

send_log [-] string
ልክ እንደ ላክ , ሕብረቁምፊ የሚላክለት ወደ log file ( log_file ይመልከቱ). ምንም የምዝግብ ማስታወሻ ፋይል ካልከፈተ ክርክሾችን ይተዋል .

send_tty [-flags] string
ውጤቱ ከአሁኑ ሂደት ይልቅ ወደ / dev / tty ካልሆነ በስተቀር እንደ መላክ አይነት ነው.

send_user [-flags] string
ውጤቱ አሁን ካለው ሂደቱ ይልቅ ወደ ውጫዊ አካላት ይላካል.

የሚያርፉ ሰከንዶች
ስክሪፕቱን ለተሰጠው የሴኮንዶች ብዛት እንዲተኛ ያደርገዋል. ሰከንዶች አስርዮሽ ሊሆን ይችላል. ማቋረጦችን (እና Exponk የሚጠቀሙት የቴክኤ ዝግጅቶች) ሲስተናግዱ ሲስተናግዱ ግን እንቅልፍ ይኑሩ.

የበራጅ [args] ፕሮግራም [args]
"የፕሮግራም ድግግሞ" ስራን የሚያከናውን አዲስ ሂደት ይፈጥራል. የሱን ስቲዲን, ስቴሽፕ እና ፐድሬር ከ Expect ጋር የተገናኘ ሲሆን በሌላ የሚጠበቁ ትዕዛዞች ሊነበቡ እና ሊጻፉ ይችላሉ. ግንኙነቱ በተቃራኒው ተሰብሯል ወይም በሂደቱ ላይ ማንኛውንም የፋይል መለያዎች ይዘጋል.

አንድ ሂደለም በኩፍኝ ሲጀምር , ተለዋዋጭ የሆነው spawn_id ሂደቱን የሚያጣቅስ መግለጫ ይሰጠዋል . በ spawn_id የተገለፀው ሂደ "የአሁኑ ሂደት " ተደርጎ ይቆጠራል. ፓምፓድ_ይድ (ፐርሰንዝማ) በስራ ላይ መዋል መቻሉ / ተጽፏል.

user_spawn_id ለተጠቃሚው የሚጠቅስ ገላጭ የሚያካትት አለም አቀፍ ተለዋዋጭ ነው. ለምሳሌ, spawn_id ወደዚህ እሴት ከተዋቀረ , እንደሚጠበቀው ዓይነት ይጠብቃል .

እኔ error_spawn_id መሰረታዊ ስህተትን የሚያመለክቱ ገላጭ ያለው መለዋወጫ ነው. ለምሳሌ, spawn_id ወደዚህ እሴት ከተዋቀረ እንደ send_error ያሉ ባህሪዎችን ላክ .

tty_spawn_id የትርጉም / አካቶ / ቲቢን የሚያካትት አለምአቀፍ ተለዋዋጭ ነው. / Dev / tty ካልሆነ (እንደ cron , at, ወይም batch ስክሪፕት) ካለ, tty_spawn_id አልተገለጸም. ይህ ምናልባት ሊፈተን ይችላል:

{{info}) {# / dev / tty exists} ሌላ {# / dev / tty # ላይይሆን ይችላል በ cron, batch, ወይም በስክሪፕት}

እንቁላል የ UNIX ሂደትን መታወቂያ ይመልሳል. ምንም ሂደቶች ካልተፈጠሩ, 0 ተመላሽ ይደረጋል. ተለዋዋጭ የሆነው spawn_out (ባሪያ, ስም) ወደ የ pty ባሪያ መሳሪያ ስም ተወስዷል.

በመሠረቱ, እንቁላል ትዕዛዙን ስም እና ክርክሮች ያስተላልፋሉ. - ኖኢኮን ባንዲራ አስቀይሮ እንዳይፈጭ ያቆመዋል.

የ- ፔንሲው ዕልባት የመነሻው ውጤት ውጤት ወደ ተጀመረ ሂደቱ እንዲመራ ያደርገዋል. ይህ በሁሉም ስርዓቶች ላይ አይደገፍም.

ውስጣዊ አረንጓዴ, ህጻን ማጫዎቱ እንደ ተጠቃሚው ቲቲንግ በተመሳሳይ መንገድ ይጀምራል. ይህ ሁሉም ነገር በቅደም ተከተል ነው (በጠንካራ (1)). የተለዋዋጭ_የተረጋጋ መጠን_ተነፍሱ ከተተረጎመ, በስታቲክ ነጋሪ እሴቶች ቅደም ተከተል እንደ ተጨማሪ ውቅር. ለምሳሌ, "stty_init raw" ያዋቅሩ ተጨማሪ የፍተረት ሂደቶችን በጥሩ ሁኔታ እንዲጀምር ያደርጋል. -nottycopy በተጠቃሚው ቲቢ ላይ የተመሠረተውን መነሻነት ይለቃል . -ኔቲታይፍ "ጤናማ" ማስነሻውን ይረሳል .

ብዙውን ጊዜ እንቁላል ለመግደል ጊዜ ይወስዳል. በጣም ረጅም ጊዜ እየፈጨ የሚያቆጥሩት ነገር ካዩ, ከተጋቡት ጥሬዎች ጋር ምናልባት ሊያጋጥመው ይችላል. የተሳሳተ ሂደቶችን ለማስወገድ ብዙ ጥረቶች በፒቲሶቻቸው ላይ ይሰራሉ. (እነዚህ በ 10 ሰከንዶች ውስጥ በ 10 ክ / ቆመው ይጓዛሉ.) ሩጫ በ -d አማራጭ ከሚጠበቀው አማራጮች ጋር ሲጋለጡ ባልተጠበቁ ግዛቶች ውስጥ ብዙ ዓይነቶችን እያጋጠመው እንደሆነ ያሳያል. እነዚህን ማጠራቀሚያዎች የተያያዙትን ሂደቶች መቁረጥ ካልቻሉ, የእርስዎ ብቸኛ ፍቃድ እንደገና ለመጀመር ሊሆን ይችላል.

(2) ሳይሳካለት (ለምሳሌ ፕሮግራሙ በማይኖርበት ጊዜ) ስኬታማነት ሊፈጠር የማይችል ከሆነ (ለምሳሌ ፕሮግራሙ በማይኖርበት ጊዜ) ስህተት ከተፈጠረ በፕሮግራሙ መሮጥ እና የስህተት መልዕክቱ እንደ ውጤት ሆኖ እንዲሰራ በሚጠየቀው ቀጣይ ተግዳሮት ወይም የስብስብ መልእክት ይመለሳል. ይህ ባህሪ በእግሮሽ የሚተኩር ተፈጥሯዊ ውጤት ነው. በሃገር ውስጥ, እንቁላል የተቆራረጠ ሂደቱ በእንውፔጅ _ ፓምፕ በኩል ካልሆነ በስተቀር የመጀመሪያ የተፈለገው ሂደቱ ከመጀመሪያው የ Expect ሂደት ጋር የሚገናኝበት መንገድ የለውም.

-ዶን ዕልባት ቀጣዩ ሙግት እንደ Tcl ፋይል መለያ (ኤክ.ሲ.) ይተረጉመዋል (ማለትም, በተከፈተው የተመለሰ). የእጥም መታወቂያ እንደ መጭመቂያ ሂደት ሊፈጠር ይችላል. (የፋይል መለያ ከአሁን በኋላ ጥቅም ላይ መዋል የለበትም.) ይህ ጥሬ ዕቃዎችን, ፋይሎችን, እና ቧንቧዎችን ማጠራቀሚያዎችን ሳይጠቀሙ ማጭበርበር ሂደቶችን እንዲፈጥሩ ያስችልዎታል. ተዛማጅ ሂደቶች መኖሩን ለማሳየት 0 ተመላሽ ተደርጓል. ከተፈጠረው ሂደቱ ጋር ያለው ትስስር ሲዘጋ የ Tcl ፋይል መለያው ነው. የ-thewasopen ጠቋሚው- ከወለፍ ውጪ መታወቂያ ከተዘገበ በኋላ እንኳን የፋይል መለያው ክፍት እንደሆነ እንዲቆይ ከማድረጉ - -openaveen-flag-yes

ባዶ ባንዲራ የተከፈለ ነገር ቢከፍት ግን ሂደቶች አልተፈጠሩም. ተዛማጅ ሂደቶች መኖሩን ለማሳየት 0 ተመላሽ ተደርጓል. Spawn_id እንደተለመደው ተዘጋጅቷል.

ተለዋዋጭ የሆነው spawn_out (slave, fd) ከ pty ባሪያ ጋር የሚሄድ የፋይል መለያ ተዘጋጅቷል. "ዘግይቶ-ጠፍ" በመጠቀም ሊዘጋ ይችላል.

የቢሮ ጠቋሚው በመነቀል ሂደቱ ውስጥ ችላ ተብሏል. አለበለዚያ, ምልክቶች ነባሪውን ባህሪ ያገኛሉ. እያንዳንዱ ምልክት የምስጢር ሰንደቅ ከፈለገ በስተቀር በእውነታዎች ትዕዛዞች ውስጥ እንደ ምልክት ይሰጣሉ.

የመመዘን ደረጃ
የሚከተሏቸው ዓረፍተ ነገሮች ከመታተማቸው በፊት እንዲታተሙ ያደረጋል. (የ Tcl ዱካ ትዕዛዝ ተለዋዋጭዎችን ይከተላል.) ደረጃ በመደወል መቆጣጠሪያ ውስጥ ምን ያህል ርቀት እንዳሉ ያመለክታል. ለምሳሌ, የሚከተለው ትዕዛዝ የመጀመሪያዎቹን 4 የስልክ ጥሪዎችን በመፈለግ ላይ ይጠብቃል ነገር ግን ከዚያ በታች ነው.

expect -c "strace 4" script.exp

የ- ኢንዶ ኢንዴክሽን የሚሰጡትን በጣም የቅርብ ጊዜ ያልሆኑ የመረጃ ልውውጦችን ዝርዝር መግለጫ እንዲመልስ ያደርገዋል.

ጥብቅ ግጭቶች
የውጫዊ የመነሻ ሁኔታዎችን በተመሳሳይ መልኩ ከውጭ የ "ስቲቲ" ትእዛዝ ጋር ይቀይራል.

በነባሪነት የመቆጣጠሪያ ተርሚናል ይደረጋል. ሌሎች ትዕዛዞች በትእዛዙ ውጤት መሠረት ወደ ሁኔታው ​​እንዲመልሱ ይደረጋል.ሁለተኛ ደረጃ ሁኔታ ካልተጠየቀ እና የመቆጣጠሪያው መድረሻ ካልተደረሰበት የቀድሞው ጥሬ እና የኢኮን ባህሪይ ቀድሞውኑ የሚመለሱት በቅጽ ውስጥ ሊመለስ ይችላል. በትእዛዙ ተጠቀም.

ለምሳሌ, ጥሬ ወይም- ተኮር ያሉት ነጋሪ እሴቶች ደረቅ ሁነታን አስቀምጠውታል . ክርክሾችን -በጣቱ ወይም በማብሰያው ተርሚናል ወደ ኩኪት ሁነታ ያስገባዋል . ክርክሾቹ echo and -echo ተለዋጭ የሆነውን የኤሌክትሮኒክ ሞዴል በኤሌክትሮኒክስ እና ኖኮዮ ሞገድ ውስጥ ያስቀምጣሉ.

የሚከተለው ምሳሌ እንዴት ለጊዜ ማሳመር እንደሚቻል ያሳያል. ይህም በሌሎች ውስጥ የይለፍ ቃላትን መክተትን ለማስቀረት በሚያስችል በሌላ አውቶማቲክ እስክሪፕት ውስጥ ሊያገለግል ይችላል. (ከዚህ በታች በ EXPECT HINTS ተጨማሪ ማብራሪያ ተመልከት.)

"የ" "የይለፍ ቃል" "ይጠበቃል" "የይለፍ ቃል አዘጋጅ" $ expect_out (1, string) stty echo

የስርዓት መቃወም
(1) እንደ ግቤት ይጭናል , ከትርጉም ትዕዛዝ እንደ ታይፕ ተደርገው እንደተፃፈው. ዛጎሉ እስኪያልቅ ድረስ ይጠብቃል. የመመለሻ ሁኔታ ከ sh መመለሻ ሁኔታውን የሚያከናውንበት ሂደትን የሚቆጣጠረው ተመሳሳይ መንገድ ነው.

ፈለጉን ስታይድን እና ስክሪፕቱን ወደ ስክሪፕቲክ በማዛወር በተቃራኒው ስርዓቱ ምንም አቅጣጫ ማዞርን አይከሰትም (ይህም በሕብረቱ ከተጠቀሰው ውጭ). ስለዚህ, በቀጥታ / dev / tty ን የሚያወሱ ፕሮግራሞችን መጠቀም ይቻላል. በተመሳሳይም, የስርዓቱ ውጤት በመዝገብ ውስጥ አልተመዘገበም.

የጊዜ ማህተም [args]
የጊዜ ማህተም ይመልሳል. ምንም ክርክሮች በሌሉበት, ኢኮኮው ከተመለሰ ሰከንዶች ብዛት.

የ- ፎርማት ባንኩ የሚመለሰው ሕብረቁምፊ ሲሆን ግን በ POSIX ደንቦች መሰረት ለካስትሜንት መሠረት ነው. ለምሳሌ% a በሳምንት የቀጠነ የቢዝነስ ስም ተተክቷል (ማለትም, ቅዳ). ሌሎች ደግሞ:

% አጸፋዊ የቢዝነስ ስም% ሙሉ የቢዝነስ ስም% ለ አጽሕሮት የወር ስም% B ሙሉ ወር ስም% c ቀን-ሰዓት እንደ ዘውድ ነው ጥቅምት 6 11:45:56 1993 ቀን% d ቀን (01-31% ሰዓት ሰዓት (00-23)% I ሰዓት (01-12)% j ቀን (001-366)% ወር ወር (01-12)% ደቂቃ ደቂቃዎች (00-59)% ፒ ወይም ሌሊቱ% S ሰከንድ (00-61) % u ቀን (1-7, ሰኞ የሳምንት የመጀመሪያው ቀን ነው)% U በሳምንት (00-53, የመጀመሪያው እሑድ የሳምንቱ የመጀመሪያ ቀን ነው)% V ሳምንት (01-53, ISO 8601 ቅጦች)% w ቀን (0- 6)% W ሳምንት (00-53, የመጀመሪያው ሰኞ የመጀመሪያው ቀን የአንድ ቀን)% x ቀን-ሰአት ጊዜ ውስጥ: እ.አ.አ. Oct 6 1993% X ጊዜ እንደ: 23:59:59% y ዓመት (00-99) % Y አመት በአመት: 1993% Z የጊዜ ሰቅ (ወይም ሊታወቅ የማይችል ከሆነ) %% አንድ መቶኛ በመቶ የእጅ ምልክት

ሌሎች% መግለጫዎች ያልተገለፁ ናቸው. ሌሎቹ ገጸ-ባህሪያት በንቃቱ አማካኝነት ይተላለፋሉ. የ C አካባቢው ብቻ ይደገፋል.

የሁለተኛው ሰንደቅ አጻጻፍ ከተቀረጸበት ጊዜ ጀምሮ በርካታ ሰከንዶች ያስተዋውቀዋል. አለበለዚያ, የአሁኑ ሰዓት ጥቅም ላይ ይውላል.

የጊትር ባንዲራዎች የትራፊክ የጊዜ ሂሳብን ለመጠቀም የዩናይትድ ስቴትስ የዊክሰንስ የጊዜ ሰቅን ለመጠቀም. ምንም ባንዲራ የሌለው, የአካባቢው የጊዜ ሰቅ ጥቅም ላይ ይውላል.

ወጥመድ [[ትዕዛዝ] ምልክቶች]
የሚሰጠውን ትዕዛዝ ወደፊት በሚደርሱበት ጊዜ እንዲቀበሉት ትዕዛዙ እንዲሰራ ያደርገዋል. ትዕዛዙ በመላው ዓለም ስፋት የተተገበረ ነው. ትዕዛዙ ከሌለ, የምልክት እርምጃው ተመልሷል. ትዕዛዙ ሕብረቁምፊ SIG_IGN ከሆነ ምልክቶቹ ችላ ይባላሉ. ትዕዛቱ ሕብረቁምፊ SIG_DFL ከሆነ ምልክት ማሳያው ወደ ስርዓቱ ነባሪ ይሆናል. ምልክቶቹ አንድ ነጠላ ምልክት ወይም የምልክት ዝርዝር ናቸው. ምልክቶቹ በእያንዳንዱ ምልክት (3) ቁጥራዊ ወይም በምሳሌነት ሊገለፁ ይችላሉ. የ «SIG» ቅድመ-ቅጥያው ሊተላለፍ ይችላል.

ምንም ነጋሪ እሴት (ወይም ነጋሪ እሴት) ሳይኖር, ወጥመዱ አሁን እየተፈጸመ ያለውን የትራፊክ ትዕዛዝ ቁጥር ይመልሳል.

የ-ኮዱን ዕልባት ትዕዛዙ መጀመሪያ ሲጀምር ሲመለስ Tcl ሊመለስ በሚመጣበት ጊዜ ምትክ ትዕዛዙን የመመለሻ ኮድ ይጠቀማል.

የ " -ስትፖት " ባንዴው, ትግሉ ከታወጀው ይልቅ ትዕዛዙ መጀመር ሲጀምር አስተርጓሚው እንዲሠራ ያደርገዋል.

የአምሳ- ጠቋሚ ዕልባት የአስረካቢ ትእዛዝ አሁን እየተፈጸመ ያለውን የትራፊክ ትዕዛዝ የምልክት ስም እንዲመልስ ያደርገዋል.

The- max flag ባንዲራ የ " ትራፔ" ትዕዛዝ ከፍተኛ ቁጥር ያለው የምልክት ቁጥር እንዲመልስ ያደርገዋል.

ለምሳሌ, "trap {send_user" Ouch !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!} "SIGINT" "Ouch!" ያትማል. በእያንዳንዱ ጊዜ ተጠቃሚው ^ C ን ይጫወትበታል.

በነባሪ, SIGINT (አብዛኛው ጊዜ በ ^ C) እና በ SIGTERM መንስኤ ሊወጣ ይችላል. ይህ ሊሆን የቻለው በሚቀጥለው ወጥመድ ምክንያት ነው, ሲጠናቀቅ በነባሪነት የተፈጠረ ነው.

ወጥተው ወጥተው {SIGINT SIGTERM}

አርምንጉን ለመጀመር የ-ዲ አርማን ከተጠቀሙ, SIGINT በይነተገናኝ አሳሹን ለመጀመር እንደገና ይዋቀራል. ይህ የሚከተለው ወጥ የሆነ ምክንያት ነው:

ወጥመድ {exp_debug 1} SIGINT

ለአዲሱ የአምሣት ትዕዛዝ የአካባቢያዊ ተለዋዋጭ EXPECT_DEBUG_INIT በማቀናበር የማረሚያ ወጥመድ መቀየር ይቻላል.

በእርግጥ ለእርስዎ ስክሪፕት የአስታዋሽ ትዕዛዞችን በመጨመር እነኚህን ሁለቱንም ይሽሩታል. በተለይ የራስዎ "ወጥመጫ መውጫ SIGINT" ካለዎት, ይህ የስህተት ማረሚያውን ይሽራል. ተጠቃሚዎች ወደ አርም-አጻሚው እንዳይመለሱ ለመከላከል ከፈለጉ ጠቃሚ ነው.

በ SIGINT ላይ የእራስዎን ወጥመድ ለመግለጽ ከፈለጉ ነገር ግን እየሄደ ባደረገው ጊዜ አራሚውን ወጥመድ ውስጥ ቢያስገቡ የሚከተለውን ይጠቀሙ:

{! [exp_debug]} {እዝጌይን SIGINT}

እንደ አማራጭ አንድ ሌላ ምልክት በመጠቀም ወደ አርምቢው ወጥመድ መጨመር ይችላሉ.

ወጥመድ ተግባር ላይ ውስጣዊ ጥቅም ላይ የሚውል ስለሆነ ይሻገራል. የማቋረጥ ትዕዛዝ SIGALRM ን ወደ SIG_IGN ያደርገዋል (ችላ ይባላል). በቀጣይ የጨቅላ ትዕዛዞች ትዕዛዞች እስክከንክ ድረስ ይህን ማድረግ ይችላሉ.

ተጨማሪ መረጃ ለማግኘት ምልክት (3) ይመልከቱ.

ጠብቅ [ግዕዝ]
የመነጩ ሂደትን (ወይም ያልተጠቀሰበት ወቅታዊ ሂደትን) እስከሚጨርስ ድረስ የሚዘገዩበት ጊዜ መዘግየት ነው.

በመደበኛነት የሚጠባበቁ አራት ተከታታይ ቁጥሮች ዝርዝር ይመልሳል. የመጀመሪያው ኢንቲጀር ተጠባባቂው ሂደትን አጣብቂኝ ነው. ሁለተኛው ኢንቲጀር ተዛማጅ የሆነው እንቁላል መታወቂያ ነው. ሶስተኛው ኢንቲጀር -1 ከሆነ የአንድ ስርዓተ ክወና ስህተት ከተከሰተ ወይም 0 ካለ ከሆነ. ሶስተኛው ኢንቲጀር 0 እንደ ነበር, አራተኛው ኢንቲጀር በክትትል ሂደት ውስጥ የተመለሰ ሁኔታ ነው. ሶስተኛው ኢንቲጀር -1 እንደነበረ, አራተኛው ኢንቲጀር በስርዓተ ክወናው የተያዘውን ስህተት ዋጋ ያመለክታል. የአለምአቀፍ ተለዋዋጭ የስህተት ስህተትም ተዘጋጅቷል.

ተጨማሪ እቅዶች ከዋጋው እሴት መጨረሻ ከማስጠበቅ በኋላ ሊታዩ ይችላሉ. አንድ አምስተኛ አምድ እንደ አንድ የመረጃ ክፍል ይለያል. በአሁኑ ጊዜ ለእዚህ አባል ያለው ብቸኛው እሴት CHILDKILLED ሲሆን በሚቀጥሉት ሁለት እሴቶች የ C- ቅጥ ምልክት ስም እና አጭር የጽሑፍ መግለጫ ናቸው.

-ኢ ሰንደቅሩ ከታወቀው እሸትን (spawn_id) ጋር የሚጎዳውን ሂደት ያሳውቃል ( የሂደቱን መታወቂያ አይደለም). በ SIGCHLD አከናዋኝ ውስጥ የእንጨማ መርገጫ መታወቂያ -1 በመጠቀም የትኛውንም ማጭበርበር ሂደት መጠበቅ ይችላሉ.

-አንቴነር ባንዲራ በተሳካ ሁኔታ እስኪጠበቅ ድረስ በፍጥነት እንዲመለስ ያመጣል. ሂደቱ ሲወጣ (በኋላ), ግልፅ መጠበቅ ሳይኖር በራስ-ሰር ይጠፋል.

እንዲሁም ትዕዛዙ ትዕዛዝ ለ "ፎከ" ሂደትን ጠብቅ "-1-1" በመጠቀም ይጠቀምበታል. ከተፈጥሯት ሂደቶች ጋር ካለው አጠቃቀም በተለየ መልኩ ይሄ ትዕዛዝ በማናቸውም ጊዜ ሊፈጸም ይችላል. የትኛው ሂደቶች እየተሰበሰቡ መቆጣጠር አይቻልም. ይሁን እንጂ የሂደት እሴት ለሂደቱ መታወቂያ ሊረጋገጥ ይችላል.

ቤተ መጻሕፍቶች

የ "እስክሪፕቶች" መጠበቅ ስለሚጠብቁ ሁለት ቤተ-መፃህፍቶች አስቀድሞ ያውቃል. እነዚህ በተለዋዋጭ ዝርዝሮች ውስጥ በተጠቀሱት ዳይሬክተሮች ውስጥ የተገለጹት በ እና exp_exec_library> ነው. ሁለቱም በሌሎች ላልሆኑ ስክሪፕቶች ሊጠቀሙባቸው የሚችሉትን የዩቲሊጅ ፋይሎች መያዝ ይገባል.

exp_library አካታች-ነጠላ ፋይሎችን ይዟል. exp_exec_library በህንፃ ላይ የተመሠረቱ ፋይሎችን ይዟል. በሁለት ሁለቱም ማውጫዎች ላይ ሙሉ በሙሉ ባዶ ሊሆን ይችላል. የፋይሉ መኖሩን $ exp_exec_library / cat-buffers እንዳለ ነዉ.

ፕሪቲ-ማተም

የቪጌር ፍቺ ለትር-ህትመት ዝግጁ ነው ለስክሪፕቶች ይጠብቁ . በ " Expect" ስርጭት ጋር የተጣጣሰውን የ vgrind ፍቺ በትክክል ስለተተገበረ እንደሚከተለው ሊጠቀሙበት ይችላሉ:

vgrind -lexpect ፋይል

ምሳሌዎች

ብዙው ሰው እንዴት ገፁን የሚገልፀውን ሁሉንም ነገር በአንድ ላይ ማስቀመጥ እንደማይቻል ብዙ ሰዎች አይታዩም. በመጪው ጊዜ በምሳሌነት በምሳሌነት በምሳሌነት በምርጫዎቹ ውስጥ ያሉትን ምሳሌዎች እንዲያነቡ እና እንድታምኗቸው አበረታታችኋለሁ . አንዳንዶቹን እውነተኛ ፕሮግራሞች ናቸው. ሌሎቹ ደግሞ የተወሰኑ ቴክኒኮች ናቸው. እርግጥ ነው, ባልና ሚስቶች ፈጣኖች ናቸው. የ INSTALL ፋይል የእነዚህ ፕሮግራሞች ፈጣን አጠቃላይ እይታ አለው.

The Expected papers (በተጨማሪ ይመልከቱ) ይመልከቱ. አንዳንድ ወረቀቶች ከተጠበቀው የ Expect እትሞች ጋር የሚዛመዱ ግን አገባብ ሲጠቀሙበት, ከዚህ ጋር ተያያዥነት ያላቸው ምክንያቶች አሁንም ልክ ከዚህ ሰው ገጽ እጅግ በጣም ብዙ ናቸው.

CAVEATS

ቅጥያዎች ከተጠበቁ ትዕዛዞች ስሞች ጋር ይጋጫሉ. ለምሳሌ, መላክ ሙሉ ለሙሉ የተለየ በሆነ መልኩ በ Tk ይገለፃል. በዚህ ምክንያት አብዛኛዎቹ የዓይን ትዕዛዞች እንደ "exp_XXXX" ይገኛሉ. በ "exp", "inter", "spawn" እና "timeout" የሚጀምሩ ትዕዛዞች እና ተለዋጭ ስሞች (aliases) የላቸውም. በንጥሮች መካከል ይህን ተኳሃኝነት ከፈለጉ የተዘረዘሩትን የትዕዛዝ ስምን ይጠቀሙ.

የሚጠበቀው የቦታ ስፋት ነው. በተለይ ለወደፊቱ በሚሰጡ ትዕዛዞች በኩል የሚነፁ ተለዋዋጭ በቅድሚያ የሚፈለጉት ከአካባቢያዊ ወሰን እና ከተገኘ በዓለም አቀፋዊ ደረጃ ውስጥ ነው. ለምሳሌ, ይህ በሚጠብቁት እያንዳንዱ ስርዓተ-ጥለት ውስጥ «ዓለም አቀፍ ቆይታ» ማድረግን አስፈላጊ ያደርገዋል. በሌላ በኩል, ተለዋዋጭ የሆኑ ፅሁፎች በክልሉ ወሰን ውስጥ ይገኛሉ ("ዓለምአቀፍ" ትዕዛዝ ካልተሰጠ በቀር). የዚህ ምክንያቱ ዋነኛ ችግር ማቅለሚያ በሚፈፀምበት ጊዜ ነው. ከህጻኑ ሂደት በኋላ, spawn_id ከዚህ በኋላ አይገኝም, ስለዚህ ስኩዊቲው ሂደቱ ስኬታማ በሆነ ምክንያት ብቻ ሊገኝ አይችልም. እንዲህ ላለው አሰራር "ዓለምአቀፍ spawn_id" አክል.

የባለብዙ ክፍፍል ችሎታን ማንቃት ካልቻሉ (ለምሳሌ, የእርስዎ ስርዓት ምርጫን (BSD *. *), የምርጫ (SVR> 2) ወይም ሌላ ተመሳሳይ ነገር አይደግፍም,) በአንድ ጊዜ ብቻ ነጠላ ሂደትን መቆጣጠር ይችላል. በዚህ አጋጣሚ spawn_id ን ለማቀናበር አይሞክሩ , እንዲሁም ያልተነካነው ሂደቱ ሲካሄድ ሂደቱን በሂደት ግን በሂደት ላይ አያስፈልግም . በተጨማሪም ከብዙ ሂደቶች (ተጠቃሚውን እንደ አንድ በአንድ ጨምሮ) ማየት በተመሳሳይ ጊዜ ሊጠብቁ አይችሉም.

የትራፊክ መለኪያዎች በስክሪፕቶች ላይ ትልቅ ተጽዕኖ ይኖራቸዋል. ለምሳሌ, አንድ ድምጽ ማስተላለፍን ለመፈለግ ከተጻፈ, ድምጽ ማጉላቱን ካጠፋ ጸባይ ያጣል. በዚህ ምክንያት, በነባሪነት አስተማማኝ የቢት ተቆጣጣሪዎች ሊሆኑ ይችላሉ. በሚያሳዝን ሁኔታ, ይሄ ለሌሎች ነገሮች ያልተደሰቱ ነገሮችን ሊያደርግ ይችላል. ለምሳሌ ያህል, "emacs shell" የተለመዱትን "ንድፎችን ለመለወጥ ይፈልጋል: አዲሶቹ መስመሮች ከካርፖው-ታሪካዊ አዲስ መስመሮች ይልቅ ካርታዎችን ወደ አዲስ መስመሮች ይዛወራሉ, እና ማስተጋባጡ ተሰናክሏል. ይሄ አንድ የግቤት መስመርን ለማርትዕ ኢምኬዎች እንዲጠቀም ያስችለዋል. የአጋጣሚ ነገር ሆኖ, ይህ ሊገምት አይችልም.

ለዋና አገልግሎት የሚውለው የብቅዳዊ ግቤት ቅንጅቶችን አይጠብቁ እንዲጠይቁ መጠየቅ ይችላሉ, ነገር ግን ለእንደዚህ አይነት አካባቢዎች ስክሪፕት ሲፅፉ በጣም ጥንቃቄ ያስፈልጋል. በእንደዚህ ኤምባዎች ላይ እንደ ማስተላለፋ እና ማብቂያ የመስመር ማሻሻያዎች ባሉ ነገሮች ላይ በመመርኮዝ ይድገሙት.

በአንድ ነጠላ ዝርዝር ውስጥ (አንድ የተጠበቀው ተለዋዋጭ እና ተለዋዋጭ ) ወጥቶ የተቀበልን ትዕዛዞች የተዘረዘሩ ትዕዛዞችን አንድ ዝርዝር ወይም ብዙ ነው ወይስ አለመሆኑን ለመወሰን ሂዩሪስቲክን ይጠቀማሉ. የሂዩሪስቲኩ መርሃ ግብር ዝርዝሩ ውስጥ ነጠላ ነጋሪ እሴትን የሚያመለክት ሲሆን በነሱ መካከል ነጠላ ባዶ ያልሆኑ ቁምፊዎችን የያዘ \ n \ ይህ በቂ ነው ሊባል የሚችል ይመስላል, ነገር ግን ክርክሩ "-ቦራጅ" አንድ ነጠላ ክርክር እንደ አንድ ነጋሪ እሴት እንዲታይ ለማስገደድ ሊያገለግል ይችላል. ይሄ ሊፈጠር ከሚችለው ማሽን-የተፈለገው የተጠበቀው ኮድ ጋር ጥቅም ላይ ሊውል ይችላል. በተመሳሳይ, -ጥራዊ ኃይሎች አንድ ነጠላ እሴት እንደ ብዙ ንድፍ / ድርጊት እንዲቆጠቡ ይደረጋል.

BUGS

የፕሮግራሙን «ወሲብ» (ለ "Smartexec" ወይም "Send-Expect") ለመሰየም በጣም ፈተሽ ነበር, ነገር ግን ጥሩ ስሜት (ምናልባትም ፐርኒከንቲዝም) ብቻ አሸንፏል.

በአንዳንድ ስርዓቶች, አንድ ዛጎል ሲፈጠር, ቲቲን ማግኘት አለመቻሉን ያሰማል, ነገር ግን ለማንኛውም ያስኬዳል. ይህ ማለት የእርስዎ ስርዓት የሚጠብቀው አይሄድም የሚጠብቃቸውን ቲቲይ ለማግኘት የሚያስችል ዘዴ አለው ማለት ነው. እባክዎን ምን እንደሆነ ይገንዘቡ እና ይህን መረጃ ወደ እኔ ይላኩ.

Ultrix 4.1 (እዚህ አካባቢ ያሉ የቅርብ ጊዜ ስሪቶች) ከ 1000000 በላይ የጊዜ ቆጠራን ከ 0 ጋር አመጣጥን ይወስናል.

የ SIGCHLD መቆጣጠሪያን ከገለፁ የዲጂታል UNIX 4.0 ኤ (እና ምናልባትም ሌሎች ስሪቶች) የሽያጭ መመደባቸውን ለመደበቅ እምቢ ማለት አይችሉም. ለተጨማሪ መረጃ የፍለጋ ገጽ ይመልከቱ.

አስታውስ አንድ ሰው ቀደም ሲል በሌላ ሰው ጥቅም ላይ የዋለው ማጠራቀሚያ ለመመደብ ሲሞክር, የ IRQ 6.0 የፒቲን ፍቃዶችን በትክክል አያስተናግድም. ወደ IRIX 6.1 ያልቁ.

Telnet (በ SunOS 4.1.2 ውስጥ ብቻ የተረጋገጠ) TERM ካልተዘጋጀ ይቆጠራል. ይሄ በ TKR ላይ ያልተገለፀው በ cron, በ እና cgi ስክሪፕቶች ውስጥ የሆነ ችግር ነው. ስለዚህ ግልጽ በሆነ መልኩ ማዘጋጀት አለብዎት- መቼም ብዙውን ጊዜ የማይጠቅመቱ. ወደ አንድ ነገር መወሰን አለበት. ለአብዛኛዎቹ ሁኔታዎች የሚከተሉት ሁኔታዎች በቂ ናቸው.

env (TERM) vt100 አዘጋጅ

ጠቃሚ ምክር (በ BSDI BSD / OS 3.1 i386 ስር ብቻ የተረጋገጠ) SHELL እና HOME ካልተቀመጡ. ይሄ በኮርኒ ውስጥ , እና በ cgi ስክሪፕቶች ውስጥ የሆነ ችግር ነው, እነዚህ የእነዚህ ኣከባቢው ተለዋዋጭ አይገለጡም. ስለዚህ በግልጽ ያስቀምጧቸው - መቼም ብዙውን ጊዜ የማይጠቅመተው. ወደ አንድ ነገር መወሰን አለበት. ለአብዛኛዎቹ ሁኔታዎች የሚከተሉት ሁኔታዎች በቂ ናቸው.

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

አንዳንድ የ «ማይኒንግ» ማስፈሪያዎች የተሰሩት ከቁጥጥር በኋላ ባለ 10 ወይም 15 ሴኮንዶች (ከማንኛዉም አስፈጻሚ-ጥገኛ ጋር) ማናቸውንም ያልተነደፈ ውፅዓት ነው. ስለዚህ እንደ

የተጋገረበት ቀን እንቅልፍ 20 ይጠበቃል

አይሳካለትም. ይህንን ለማስቀረት, ከእንቅስቃሴ ውጭ የሆኑ ፕሮገራሞች ከፀሓይ ይልቅ ከመሥሪያ ጋር ይጠርጉ . እንደዚህ ያሉ ሁኔታዎች ተይዘው ቢኖሩም, በተግባር ግን, በዚህ ባህሪ ምክንያት እውነተኛ የእርስበታዊ ፕሮግራም የመጨረሻ ውጤት ውጤት አይኖረኝም.

በሌላው በኩል ግን, የ UNICOS ፒኪዎች ፋይሉ የፋይል ገላጭ (ሲኒክስ) ከተዘጋ በኋላ ወዲያውኑ ያልተነበበው ውጤት ይጥላል. ይህንን ወደ ክላገር ሪፖርት አድርጌያለሁ እና በጥገና ላይ እየሠሩ ነው.

አንዳንድ ጊዜ በቅጥያ እና ምላሽ መካከል መዘግየት አስፈላጊ ነው, ለምሳሌ የ Tty በይነገጽ የዩአርፒ ቅንብሮችን ሲቀይር ወይም የማብቂያ / ማቆሚያ መጠኖችን በመፈለግ የ « ጠቋሚዎች ብዛት» በሚለውጥበት ጊዜ. ብዙውን ጊዜ, ይህ ሁሉ ያስፈለገው ለአንድ ሰከንድ ወይም ለሁለት ለመተኛት ነው. በጣም ጠንካራ የሆነ ዘዴ ሃርድዌሩ ግቤት ለመቀበል ዝግጁ እስኪሆን ድረስ እንደገና መሞከር ነው. የሚከተለው ምሳሌ ሁለቱንም ዘዴዎች ይጠቀማል-

«speed 9600 \ r» ላክ. 1 እንቅልፍ ይጠብቁ {waitout {send "\ r"; exp_continue} $ prompt}

የእንጥል-ኮድን በቲ.ኮ. ከክፍል ውጭ በተቀመጠው ትዕዛዝ ውስጥ እንደማንኛውም ትዕዛዝ አይሰራም. ችግሩ በክስተቱ ሁናቴ ውስጥ, Tcl የመመለስ ኮዶችን ከ Async ክስተት ተቆጣጣሪዎች ውስጥ አድርጎታል. በተቃራኒው ዘዴ ውስጥ የአሰራር ምስጢር በአሰራር ሂደት ውስጥ ማስተካከል ነው. ከዚያ ትዕዛዙን በኋላ ወዲያውኑ ምልክት ያድርጉበት (ማለትም, እንቅልፍ).

የ expected_background command ችላ -timeout arguments እና አጠቃላይ የጊዜ ማቆም ሐሳብ የለውም.

& # 34; EXPECT HINTS & # 34;

ስለ የተጠበቁ ሁለት ነገሮች አሉ የሚጠበቁ ምናልባት ያልተለመዱ ሊሆኑ ይችላሉ. ይህ ክፍል ከእነዚህ ውስጥ አንዳንዶቹን በጥቂት ሀሳቦች ላይ ለማረም ይሞክራል.

የጋራ መሄድ ችግር የሼል ተግኝቶችን እንዴት እንደሚለይ ማወቅ ነው. እነዚህ በተለያየ በተለያየ ሰዎችና የተለያዩ ዛጎሎች የተለያይ እንደመሆናቸው ምክንያት, በራስ ተነሳሽነት የራግመንን (automating rlogin) መምጣቱን ሳያውቅ አስቸጋሪ ሊሆን ይችላል. ምክንያታዊ ስምምነት ተጠቃሚዎች በአስቸኳይ አካባቢያቸው ተለዋዋጭ (EXPECT_PROMPT) ላይ በመለጠፋቸው (በተለይም ፍጻሜያቸውን) የሚገልጹ መደበኛ መግለጫዎችን እንዲያከማቹ ማድረግ ነው. ከዚህ በታች ያለውን ኮድ መጠቀም ይቻላል. EXPECT_PROMPT ከሌለ, ኮዱ አሁንም በትክክል መስራት ጥሩ እድል አለው.

ማዘጋጀት "(% | # | \\ $) $"; # ነባሪ የሙከራ ወጤት {Set set prompt $ env (EXPECT_PROMPT)} ይጠበቃል-$ የቅርብ ጥያቄ

ወደፊት የሚጠብቁትን ነገር በሙሉ የሚያካትት የሚጠብቃቸውን ስዕሎች እንዲጽፉ እናበረታታዎታለሁ. ይህም ሁሉንም ነገር ከማየቱ በፊት ለሚነሱ ጥያቄዎች መልስ ከመስጠት ይርቃል. በተጨማሪም ሙሉ ለሙሉ ከመመልከትዎ በፊት ለጥያቄዎችዎ መልስ መስጠት ቢችሉም, እርስዎ ቀደም ብለው መልስ ከሰጡ, መልሱ በጥያቄው መካከል ተስተካክሎ ይታይ ይሆናል. በሌላ አገላለጽ, የውጤት ጉድኝት ትክክለኛ ይሆናል, ነገር ግን በክርክር የተሞላ ነው.

ብዙ ግስጋሴዎች በመጨረሻው ላይ የቦታ ቁምፊን ያካትታሉ. ለምሳሌ, ከ ftp ውስጥ ያለው ማሳገድ , 't', 'p', '>' እና. ይህን ጥያቄ ለማዛመድ ለእያንዳንዱ የእነዚህን ቁምፊዎች መለያ መስጠት አለብዎት. ባዶውን ማካተት የተለመደ ስህተት ነው. ባዶውን በግልጽ ለይ.

በተለይም ብዙዎቹ ፕሮግራሞች አንድ ፕሮቴሪያል በአንድ ጊዜ በአንድ ጊዜ የሚያመርቱ ሲሆኑ የሰው ልጆች የፕሮግራም ውጤት ወደ ትናንሽ ሳጥኖች (በአስለጣዊ ሁኔታ) ይመጣሉ. እንደዚያ ከሆነ ጉዳዩ ነው ብለን ካሰብን, ከዚህ በፊት ባለው የአንቀጽ ንድ ቅርጽ * ውስጥ ከአሁኑ መስመር መጨረሻ ጋር ሊመሳሰል ይችላል, ምንም እንኳ ብዙ የሚመስል ቢመስልም, ምክንያቱም በወቅቱ ያገኘሁት ውጤት በወቅቱ ነበር.

ምንም እንኳን የእርስዎ ስርዓተ-ጉዳይ በተለይ ለሱ ብቻ ካልሆነ በስተቀር ተጨማሪ ውጤት እንደሚመጣ መጠበቅ የለባቸውም.

በመስመር ላይ-ተኮር ማጠራቀሚያ ላይ የተመሰረተ ቢሆንም ሞኝነት ነው. መርሃግብሮች ስለሚያደርጉት የችግሮሽ ዓይነት ብዙ ጊዜ ተስፋ አይሰጡም, ነገር ግን የስርዓቱ መቆራረጫ መስመሮች በተወሰዱ በሚመስሉ ስፍራዎች መስመሮች እንዲቋረጡ ለማድረግ የውጤት መስመሮችን ሊሰብር ይችላል. ስለዚህ, የአጻጻፍ ስርዓተ-ምልልትን የመጨረሻዎቹን ጥቂት ቁምፊዎች መግለጽ ቢቻሉም, ይህን ማድረግ ጥሩ ነው.

በፕሮግራሙ የመጨረሻ ውፅዓት ላይ የጥሰት ስርዓት እየጠበቁ ከሆነ እና ፕሮግራሙ በምትኩ ሌላ ነገር ሲፈጥር, በጊዜ ማብቂያው ቁልፍ ላይ ሊያገኙት አይችሉም. ምክንያቱ የሚጠብቀው ጊዜ አይጠፋም - ይልቁንም ያመለክትበታል . ይልቁንስ ይጠቀሙ. ይበልጥ በተሻለ ሁኔታ ሁለቱንም ይጠቀሙ. በዚያ መስመር የተንቀሳቀሰ መስመር ከሆነ, መስመር እራሱ ማርትዕ አያስፈልግዎትም.

የኒውንድ መስመሮች ብዙውን ጊዜ ወደ ጋዝ መመለሻ ይለወጣሉ. ስለዚህ, ከሁለት መስመሮች ጋር በግልጽ የሚዛመዱ ቅጦች ከ "ከ", "ከ", "print" ("foo \ nbar") ጋር የሚዛመዱ ከሆነ "foo \ rbar" ስርዓትን መጠቀም አለብዎት.

ተመሳሳይ ትርጉም የሚተረጎመው ከተጠቃሚው በማንበብ, ከተጠበቀው (ከተጠበቀው) በሚሆንበት ጊዜ ነው . በዚህ ጊዜ ሪፖርቱን ሲጫኑ ወደ አዲስ መስመር ይተረጎማል. ከተጠበቀው በኋላ የፕሮቲን ውሱን ወደ ደረቅ ሁነታ (እንደ ቴኔት) ያቀናጃል, መርሃግብሩ እውነተኛ ተመላሽ ስለሚሆን ችግር ይሆናል. (አንዳንድ ፕሮግራሞች አዲሱን መስመር ሊመለሱ ይችላሉ, ነገር ግን ብዙዎቹ አይሰራም.) በአጋጣሚ ነገር, አንድ ፕሮግራም የፀሐይን ተርጓሚ ጥሬ አመጣጥ የሚያገኝበት መንገድ የለም.

አዲስ መስመሮችን በምላሽዎች መተካት ሳይሆን መፍትሔው "ጥንካሬ ጥሬ" የሚለውን ትእዛዝ መጠቀም ነው, ይህም ትርጉሙን ያቆመዋል. ያስታውሱ, ይህ ማለት ከዚህ በኋላ የተጣራ መስመር-አርትዕ ባህሪያትን ከእንግዲህ አያገኙም ማለት ነው.

ተኪዎን በጭንቅላቱ ወደ ጥሬ ሁኔታ ይለውጡና ይህ ችግር ከዚያ በኋላ ሊነሳ አይችልም.

በተጠበቀው ስክሪፕት ውስጥ የይለፍ ቃላትን (ወይም ሌላ የግል መረጃ) ለማከማቸት ብዙውን ጊዜ ጠቃሚ ነው. በኮምፒተር ላይ የተከማቸ ማንኛውም ነገር ለማንም ሰው ሊደርስበት ስለሚችል ይህ አይመከሩም. በመሆኑም ከስክሪፕት ላይ የይለፍ ቃላትን ተለዋዋጭ በሆነ መንገድ የመቀስቀስ ዘዴ ቃል በቃል ከመጨመር የበለጠ ብልሃዊ ሐሳብ ነው. ይሁን እንጂ አንዳንድ ጊዜ እንደዚህ ዓይነት ሽፋን ሊገኝ የሚችለው ብቸኛው አማራጭ ነው.

የአጋጣሚ ነገር ሆኖ ዩኒክስ የፋይል ስርዓት ሊሰሩ የሚችሉ ግን ሊነበቡ የማይችሉ የተነበቡ ፅሁፎችን በቀጥታ መፍጠር አይችሉም. የ setgid shell shells የሚደግፉ ስርዓቶች ይህንን በተዘዋዋሪ እንደሚከተለው ሊመስሉ ይችላሉ:

እንደተለመደው የተጠባባቂ ስክሪፕት (እንደ አስፈላጊነቱ) ይፍጠሩ. የራሱን ፍቃዶች 750 (-rwxr-x ---) እና የታመኑ ቡድኖች ባለቤት ነው, ማለትም, እንዲያነቡት የተፈቀደ ቡድን. አስፈላጊ ከሆነ ለዚህ ዓላማ አዲስ ቡድን ይፍጠሩ. ቀጣይ, ልክ እንደማንኛውም ቡድን በተመሳሳይ የጋራ ባለቤትነት / ባለቤትነት / ፍቃዶች 2751 (-rwxr-s - x) የራስ / bin / sh ስክሪፕት ይፍጠሩ.

ውጤቱም በማንም ሰው ሊፈጸም (እና ሊነበቡ) የሚችል ስክሪፕት ነው. ሲጠየቅ የ Expect ስክሪፕትን ያቀናጃል.

& # 34; ተጨማሪ ይመልከቱ & # 34;

Tcl (3), libexpect (3)
" ለወደፊቱ መፈተሸን: የ " በይነ-ተኮር ፕሮግራሞች ለትርፍ የተቋቋሙ ፕሮግራሞች በቴክ አፕል የተደገፈ መሳሪያዎች " በዶን ሊሊስ, ገጽ 602, ISBN 1-56592-090-2, ኦአይሊልና አሶሰንስ, 1995.
"ሊጠበቁ የማይቻሉ ተመጣጣኝ መስተንግዶዎችን መጠበቅ" በለን ሌስስ, የበጋው የ 1990 የሂደቱ አሜሪካን የዩ ኤስ ኤኒክስ ኮንፈረንስ, አናሃም, ካሊፎርኒያ, ከሰኔ 15-15, 1990.
"በፀሐፊነት ስርዓት አስተዳደራዊ ስራዎች ስራ ላይ ማዋል" ን በዶን ሊስ, በ 1990 የዩኤስኤንሲል ትልቅ ጭነት ስርዓት አስተዳደር አስተዳደር ኮሎራዶ ስፕሪንግስ, ኮሎራዶ ከጥቅምት 17-19, 1990
በጆን ኦስተርሁ, የዊንተር 1990 ዩኤስኤኒክስ ኮንፈረንስ, ዋሽንግተን ዲሲ, ጃንዋሪ 22-26, 1990 .. "በቴክኒካዊ የቋንቋ መርሃግብር መቆጣጠርያ ስክሪን" በዶን ሊስ, ኮምፕሊት ሲስተም , ጥራዝ. 4, የዩኒቨርሲቲው የኒው ካሊፎርኒያ መጽሄቶች, ኖቬምበር 1991..የ "የሽግግሞሽን ፈተና እና የክትትል ሙከራ ፈተናዎች በይነተገናኝ ፕሮግራሞች", በዲነንስ ሊስ, የክረምት አካላት 1992 ዩ ኤስ ኤኒክስ ኮንፈረንስ, ገጽ 135-144, ሳን አንቶንዮ, ቲ ኤክስ, ከጁን 12-15, 1992 .. "ኪቢዝዝ - ብዙ መስተጋብራዊ ፕሮግራሞችን በጋራ በማገናኘት" በዳን ሌስ, ሶፍትዌር - ልምድ እና ልምድ, ጆን ዋይሌ እና ሳንስ, ዌስት ሱሴክስ, እንግሊዝ, ጥ.

23, 5, ግንቦት, 1993 .. "ለትግበራ ማቅረቢያ ማመላከቻ" ማመሳከሪያ ነው, በዶኔ ሊስ, እ.ኤ.አ. 1993 እ.ኤ.አ. በ 1993 እ.ኤ.አ. በ 1993 እ.ኤ.አ. Berkeley, CA, ሰኔ 10-11, 1993 እ.ኤ.አ.

AUTHOR

ዶንስ ሊesስ, ብሔራዊ ደረጃዎች እና ቴክኖሎጂ ተቋም

አመስጋኝ

ምስጋና ለጆን ኦስተሽሆት ለ Tcl እና ለስኮት ፓይሌል አመሰግናለሁ. ለ Rob Savoye expectations for autoconfiguration ኮድ.

የሂትለር ዶክመንተሪ የሚጠበቀው ብዙ የዝግመተ ለውጥ ማስረጃ ነው. አስደሳች የሆነ ንባብ እና ይህን ሶፍትዌር ተጨማሪ ግንዛቤን ሊሰጥዎ ይችላል. በውስጡ የጠቀሱ ሰዎች ለሳንቄ ካጠኑኝ እና ሌሎች እገዛዎችን ላደረጉልኝ ምስጋና እናመሰግናለን.

የወደፊቱን ንድፍ እና አፈፃፀም በከፊል ለአሜሪካ መንግስት ተከፍሏል, ስለዚህ በሕዝብ ጎራ ውስጥ ነው. ይሁን እንጂ ይህ ፐሮግራም እና ሰነዶች ወይም የተወሰነው ክፍል ጥቅም ላይ ከዋለ ጸሐፊው እና NIST የዱቤ ተመራማሪዎችን ይፈልጋሉ.