எதிர்பாருங்கள் ஒரு ஸ்கிரிப்ட்டின் படி மற்ற ஊடாடும் திட்டங்களுடன் பேசும் ஒரு திட்டம். ஸ்கிரிப்ட்டைத் தொடர்ந்து, எதிர்பார்ப்பு என்னவென்றால், ஒரு திட்டத்தில் இருந்து எதிர்பார்ப்பது என்ன, என்ன சரியான பதில் இருக்க வேண்டும் என்று எதிர்பார்க்கப்படுகிறது. உரையாடலை வழிநடத்த ஒரு மொழியிலான மொழி கிளை மற்றும் உயர் நிலை கட்டுப்பாட்டு கட்டமைப்புகளை வழங்குகிறது. கூடுதலாக, பயனர் கட்டுப்பாட்டை எடுத்து, நேரடியாக ஸ்கிரிப்ட் கட்டுப்பாட்டை திரும்ப, விரும்பிய போது நேரடியாக தொடர்பு கொள்ள முடியும்.
எதிர்பார்ப்பு எதிர்பார்ப்பு மற்றும் Tk இன் கலவையாகும். இது எதிர்பார்ப்பு மற்றும் TK இன் ஆசை போன்ற செயல்படுகிறது. எதிர்பார்த்த டி.எல்.சி இல்லாமல் C அல்லது C ++ இல் நேரடியாகப் பயன்படுத்தலாம்.
யூக்பால், கர்மிட் மற்றும் பிற மோடம் கண்ட்ரோல் புரோகிராம்கள் மூலம் பிரபலப்படுத்தப்படும் காட்சிகளை அனுப்ப / எதிர்பார்க்கும் கருத்திலிருந்து "எதிர்பார்ப்பு" என்ற பெயர் வருகிறது. இருப்பினும் யூகப் போலல்லாது, எதிர்பார்ப்பு பொதுவானது, எனவே அது எந்தவொரு நிரல் மற்றும் பணி மனதில் மனதில் ஒரு பயனர் நிலைக் கட்டளையாக செயல்பட முடியும். எதிர்பார்ப்பு ஒரே நேரத்தில் பல நிகழ்ச்சிகளுடன் பேசலாம்.
என்ன செய்ய முடியும் என்று எதிர்பார்க்கலாம்
உதாரணமாக, எதிர்பார்ப்பு கட்டளையை செய்யக்கூடிய சில விஷயங்கள் இங்கே உள்ளன:
- உங்கள் கணினியை நீங்கள் திரும்ப அழைக்கும் காரணத்தினால், அழைப்பிற்கு பணம் செலுத்தாமல் உள்நுழைய முடியும்.
- ஒரு விளையாட்டை ஆரம்பிக்கவும், உகந்த கட்டமைப்பு தோன்றவில்லை என்றால், அது மீண்டும் மீண்டும் தொடங்கும் வரை), பின்னர் உங்களிடம் கட்டுப்பாட்டை ஒப்படைக்கவும்.
- Fsck ஐ இயக்கவும், அதன் கேள்விகளுக்கு பதிலளித்து, முன்னரே தீர்மானிக்கப்பட்ட அடிப்படையின் அடிப்படையில், "ஆம்" அல்லது "இல்லை" எனக் கூறவும் அல்லது உங்களுக்குக் கட்டுப்பாட்டைக் கொடுக்கவும்.
- மற்றொரு நெட்வொர்க்குடன் இணைக்கவும், தானாகவே உங்கள் அஞ்சல் அமைப்புகளை மீட்டெடுக்கவும்.
- சூழல் மாறிகள், நடப்பு அடைவு அல்லது rlogin, telnet, tip, su, அல்லது chgrp
ஷெல் இந்த பணிகளைச் செய்ய முடியாது என்பதற்கான பல்வேறு காரணங்கள் உள்ளன. எல்லோரும் எதிர்பார்க்கலாம்.
பொதுவாக, எதிர்பார்ப்பு நிரல் மற்றும் பயனர் இடையே தொடர்பு தேவைப்படும் எந்த திட்டத்தை இயக்கும் பயனுள்ளதாக இருக்கும். அவசியமானவை அனைத்தும் தொடர்புபடுத்தப்படக்கூடியவையாகும். எதிர்பார்த்த திட்டம் கட்டுப்படுத்தப்படும் இல்லாமல் பயனர் கட்டுப்பாட்டு மீண்டும் கொடுக்க முடியும். இதேபோல், பயனர் எப்போது வேண்டுமானாலும் ஸ்கிரிப்ட்டுக்குக் கட்டுப்படுத்த முடியும்.
பயன்பாடு
Execute செய்ய கட்டளைகளின் பட்டியல் cmdfile ஐப் படிக்க வேண்டும் என எதிர்பார்க்கலாம். # ஆதரிக்கும் அமைப்புகளில் மறைமுகமாகப் பெறப்படலாம்! ஸ்கிரிப்ட்டில் ஸ்கிரிப்ட் முதல் வரியை உருவாக்குவதன் மூலம் ஸ்கிரிப்ட்டை குறிக்கும் மூலம் குறியாக்கம்:
#! / usr / local / bin / expect -f
நிச்சயமாக, வாழ்க்கையை எங்கு எதிர்பார்ப்பது என்பது சரியாக இருக்க வேண்டும். / usr / local / bin ஒரு உதாரணம்.
-C கொடி ஸ்கிரிப்ட்டில் முன்னர் செயல்படுத்தப்பட வேண்டிய கட்டளையைப் பயன்படுத்துகிறது. ஷெல் மூலம் உடைக்கப்படுவதை தடுக்க கட்டளை மேற்கோள் காட்டப்பட வேண்டும். இந்த விருப்பத்தை பல முறை பயன்படுத்தலாம். பல கட்டளைகளை ஒரு ஒற்றை-சி மூலம் semicolons மூலம் பிரிக்கலாம். அவை தோன்றும் வரிசையில் கட்டளைகள் செயல்படுத்தப்படுகின்றன. Expectk ஐ பயன்படுத்தும் போது, இந்த விருப்பம் -command என குறிப்பிடப்படுகிறது.
-D கொடி சில கண்டறியும் வெளியீடு செயல்படுத்துகிறது, இது முதன்மையாக எதிர்பார்ப்பது மற்றும் தொடர்புபடுத்தும் போன்ற கட்டளைகளின் உள் செயல்பாட்டை அறிக்கையிடுகிறது. எதிர்பார்ப்பு ஸ்கிரிப்ட்டின் ஆரம்பத்தில் இந்த கொடி "exp_internal 1" என்ற அதே விளைவைக் கொண்டிருக்கிறது, மேலும் எதிர்பார்ப்பு பதிப்பு அச்சிடப்படும்.
-D கொடி ஒரு ஊடாடும் பிழைத்திருத்தத்தை செயல்படுத்துகிறது. ஒரு முழு எண் மதிப்பு பின்பற்ற வேண்டும். மதிப்பு பூஜ்யம் இல்லையோ அல்லது ஒரு ^ C அழுத்தம் அல்லது ஒரு இடைவேளைநேர அழுத்தம் ஏற்பட்டால் அல்லது பிற பொருத்தமான பிழைத்திருத்த கட்டளை ஸ்கிரிப்ட்டில் தோன்றுகிறதா எனில், அடுத்த டி.clி நடைமுறைக்கு முன்னதாகவே டீபர்கர் கட்டுப்பாட்டை எடுப்பார். Expectk ஐப் பயன்படுத்தும் போது, இந்த விருப்பம் குறிப்பிடப்பட்டுள்ளது -பிழைதிருத்து.
-F கொடி கட்டளைகளை படிக்க வேண்டிய ஒரு கோப்பைக் கோருகிறது. # ஐ பயன்படுத்தும் போது மட்டுமே பயனுள்ளதாக இருக்கும் எனக் கொடியானது தானே! குறிப்பு, மற்ற வாதங்கள் கட்டளை வரியில் வழங்கப்படலாம். Expectk ஐப் பயன்படுத்தும் போது, இந்த விருப்பம் என -file என குறிப்பிடப்படுகிறது.
முன்னிருப்பாக, கட்டளை கோப்பினை நினைவுபடுத்துகிறது மற்றும் முழுவதுமாக செயல்படுத்தப்படுகிறது. ஒரு நேரத்தில் கோப்புகளை ஒரு வரியை வாசிக்க எப்போதாவது விரும்பத்தக்கதாக இருக்கிறது. தன்னிச்சையான கோப்புகளை இந்த முறையில் கையாளுவதற்கு, -b கொடி பயன்படுத்தவும். Expectk ஐ பயன்படுத்தும் போது, இந்த விருப்பம் -பஃபர் என குறிப்பிடப்படுகிறது.
சரம் "-" ஒரு கோப்பு பெயராக வழங்கப்பட்டால், அதற்கு பதிலாக நிலையான உள்ளீடு வாசிக்கப்படும். உண்மையில் "-" என்ற பெயரிடப்பட்ட ஒரு கோப்பினை வாசிக்க "./-" பயன்படுத்தவும்.
-என் கொடி காரணமாக கோப்புகளில் இருந்து படிப்பதற்குப் பதிலாக கட்டளைகளுக்கு ஊடாடும் வகையில் எதிர்பார்க்கப்படுகிறது. வெளியேறும் கட்டளையால் அல்லது EOF மீது கேட்கும் பணி நிறுத்தப்படுகிறது. கட்டளை கோப்பு அல்லது -c பயன்படுத்தப்படாவிட்டால் -i கொடி கருதப்படுகிறது. Expectk ஐப் பயன்படுத்தும் போது, இந்த விருப்பம் -இன்டாக்டிவ் என குறிப்பிடப்படுகிறது.
- விருப்பங்கள் முடிவடைவதைப் பயன்படுத்தலாம். எதிர்பார்ப்பு மூலம் விளக்கப்படாமல் உங்கள் ஸ்கிரிப்டில் ஒரு விருப்பத்தை போன்ற வாதத்தை அனுப்ப விரும்பினால் இது பயனுள்ளதாக இருக்கும். இது உபயோகமாக # வைக்கப்படும்! எதிர்பார்ப்பு மூலம் எந்த கொடிய விளக்கத்தையும் தடுக்க வரி. உதாரணமாக, பின்வரும் மாறி உள்ள ஸ்கிரிப்ட் பெயர் உட்பட அசல் வாதங்கள் விட்டு சோதிக்க .
#! / usr / local / bin / expect -
வாதங்களைச் சேர்க்கும் போது வழக்கமாக getopt (3) மற்றும் execute (2) கன்வென்ஷன்கள் இருக்க வேண்டும் என்பதை கவனத்தில் கொள்க! வரி.
$ Exp_library / expect.rc கோப்பு -N கொடி பயன்படுத்தப்படாவிட்டால் தானாகவே ஆதாரமாக இருக்கும். (Expectk ஐப் பயன்படுத்தும் போது, இந்த விருப்பம் -NORC என குறிப்பிடப்படுகிறது.) உடனடியாக இதைச் செய்த பின், N-flag பயன்படுத்தப்படாவிட்டால், கோப்பு ~ / .expect.rc தானாகவே ஆதாரமாகிறது. சுற்றுச்சூழல் மாறி DOTDIR வரையறுக்கப்பட்டிருந்தால், அது ஒரு கோப்பகமாக கருதப்படுகிறது. Expectk ஐ பயன்படுத்தும் போது, இந்த விருப்பம் -norc என குறிப்பிடப்படுகிறது.இந்த sourcing எந்த-சி கொடிகள் இயற்றிய பிறகு மட்டுமே ஏற்படுகிறது.
-v ஏற்படுத்துகிறது அதன் பதிப்பு எண் மற்றும் வெளியேறும் அச்சிட எதிர்பார்க்கலாம். நீண்ட காலப் பெயர்களைப் பயன்படுத்தும் எக்ஸ்பெக்டில் தொடர்புடைய கொடி, பதிப்பு.
Optional args ஒரு பட்டியலில் கட்டப்பட்ட மற்றும் மாறி பெயரிடப்பட்ட argv மற்றும். argc நீட்டிக்கப்பட்ட நீளத்திற்கு துவக்கப்படுகிறது.
ஸ்கிரிப்ட் பயன்படுத்தப்படாவிட்டால், ஸ்கிரிப்ட் அல்லது பைனரி என்ற பெயரை Argv0 வரையறுக்கப்படுகிறது. எடுத்துக்காட்டாக, பின்வருவனது ஸ்கிரிப்டின் பெயர் மற்றும் முதல் மூன்று வாதங்களை அச்சிடுகிறது:
send_user "$ argv0 lrange $ argv 0 2 n"
கட்டளைகள்
கருவி கட்டளை மொழி பயன்படுத்துவதை எதிர்பார்க்கிறது. TCL கட்டுப்பாட்டு ஓட்டம் (என்றால், முறித்து), வெளிப்பாடு மதிப்பீடு மற்றும் மறுபார்வை மற்றும் செயல்முறை வரையறை போன்ற பல அம்சங்களை வழங்குகிறது. இங்கு பயன்படுத்தப்படும் கட்டளைகள், ஆனால் வரையறுக்கப்படவில்லை (அமைக்க, இருந்தால், இயக்க) Tcl கட்டளைகள் ஆகும். கூடுதல் கட்டளைகளை ஆதரிக்க எதிர்பார்க்கலாம். இல்லையெனில் குறிப்பிடப்பட்டால், கட்டளைகளை வெற்று சரம் திரும்பும்.
கட்டளைகள் அகரவரிசைப்படி பட்டியலிடப்பட்டுள்ளன, இதனால் அவை விரைவாக அமைந்துள்ளன. இருப்பினும், அந்த வரிசையில், ஸ்பான்ஸின் விளக்கங்களைப் படித்து, அனுப்பி, எதிர்பார்ப்பதுடன், தொடர்புகொள்வதன் மூலம் புதிய பயனர்கள் அதை எளிதாகத் தொடங்கலாம்.
நெருங்கிய -ஸ்லீவ் -இன்செக் 0 | 1 -i spawn_id
நடப்பு செயல்முறைக்கு இணைப்பை மூடுகிறது. பெரும்பாலான ஊடாடும் நிரல்கள் EOF ஐ அவர்களின் ஸ்டெடின் மற்றும் வெளியேறும்போது கண்டறியும்; இதனால் நெருக்கமான வழக்கமாக அதே செயல்முறையை அழிக்க போதும். பெயரிடப்பட்ட spawn_id உடன் தொடர்புடையதாக மூடப்பட்ட செயல்முறையை -ஐ கொடி அறிவிக்கிறது.
நடப்பு செயல்முறை வெளியேறும் மற்றும் மறைமுகமாக நெருக்கமாக செய்யும்போது இருவரும் எதிர்பார்ப்பதுடன் தொடர்புபடும், ஆனால் நீங்கள் செயல்பாட்டைக் கொன்றுவிட்டால், "exec" $ pid ஐ கொலை செய்யுங்கள், நீங்கள் வெளிப்படையாக அருகில் அழைக்க வேண்டும்.
ஸ்பான்ஸர் ஐடி மூடப்பட்டிருக்குமா அல்லது செயல்முறை மேலோட்டமாக இருந்தால், அது -onxec கொடி தீர்மானிக்கப்படுகிறது. ஒரு ஸ்பான் ஐடியை திறக்க, மதிப்பு 0 ஐப் பயன்படுத்தவும். எந்த புதிய செயல்களிலும் ஸ்பான் மூடப்பட்ட ஒரு பூஜ்ஜியமல்லாத முழுமையாக்கும் மதிப்பு.
ஸ்பேன் ஐடி தொடர்புடைய அடிமை கொடியை மூடிவிடுகிறது. இணைப்பு மூடப்பட்டுவிட்டால், அடிமை தானாக மூடப்பட்டுவிட்டால் தானாக மூடப்படும்.
இணைப்பு மறைமுகமாகவோ அல்லது வெளிப்படையாகவோ மூடப்பட்டிருந்தாலும், தொடர்புடைய கர்னல் செயல் ஸ்லாட்டை அழிக்க காத்திருக்க வேண்டும். நெருக்கமான கட்டளை காத்திருக்கவில்லை, ஏனென்றால் ஒரு செயல்முறை இணைப்பை மூடுவது உத்தரவாதமளிக்காது என்பதால் உத்தரவாதம் இல்லை.
பிழைதிருத்தம் - 0 0 | 1
Tcl பிழைத்திருத்தத்தை கட்டுப்படுத்துகிறது, அறிக்கைகள் மற்றும் இடைவெளிகளை அமைக்கலாம்.
பிழைத்திருத்தங்கள் இயங்கவில்லையானால், விவாதங்கள் ஏதுமின்றி ஒரு 1 திரும்பினால், இல்லையெனில் 0 திரும்பியது.
1 வாதத்துடன், பிழைத்திருத்த ஆரம்பித்துவிட்டது. ஒரு 0 வாதம் மூலம், பிழைதிருத்தம் நிறுத்தப்பட்டது. ஒரு 1 வாதம் முன்னதாகவே இருந்தால் -இங்கே கொடி, உடனடியாக துவங்குகிறது. இல்லையெனில், அடுத்த டி.clி் அறிக்கையுடன் டீபர்கர் தொடங்கப்படுகிறது.
பிழைத்திருத்த கட்டளை எந்த பொறிகளையும் மாற்றாது. -D கொடி மூலம் எதிர்பார்ப்பதை இது ஒப்பிட்டு.
துண்டிக்கப்பட்ட கட்டளை முனையிலிருந்து ஒரு முடக்கிய செயல்முறை துண்டிக்கப்படுகிறது. இது பின்னணியில் இயங்கும். செயல்முறை அதன் சொந்த செயல்முறைக் குழுவிற்கு வழங்கப்படுகிறது. தரநிலை I / O ஐ / dev / null க்கு திருப்பிவிடப்படுகிறது.
பின்புலத்தில் ஸ்கிரிப்ட் இயங்குவதற்கு தொடர்ந்து துண்டிக்கப்படுதல் துண்டிக்கப்படுகிறது.
{fork = =} வெளியேறினால் வெளியேறவும். . .
பின்வரும் ஸ்கிரிப்ட் கடவுச்சொல் ஒன்றைப் படித்து, ஒவ்வொரு மணிநேரமும் ஒரு கடவுச்சொல்லை இயங்கும் ஒவ்வொரு மணிநேரமும் கடவுச்சொல்லை கோருகிறது. ஸ்கிரிப்ட் கடவுச்சொல்லை வழங்குவதால், நீங்கள் ஒரு முறை மட்டுமே தட்டச்சு செய்ய வேண்டும்.
send_user "கடவுச்சொல்? " expect_user -re "(. *) n" {{fork = {"fork! = 0} {தூக்கம் 3600; தொடர்ந்து} ஸ்பான் priv_prog ஐ துண்டிக்க வேண்டும் கடவுச்சொல்:" $ expected_out 1, சரம்) r ". . . வெளியேறுகிறது}
ஷெல் ஒத்தியங்கா செயல்திறன் அம்சம் (&) மீது துண்டிக்கப் பயன்படும் ஒரு நன்மை, துண்டிக்கப்படுவதற்கு முன்னர் முனைய அளவுருவை சேமிக்க முடியும், பின்னர் அவற்றை புதிய ptys க்கு விண்ணப்பிக்கலாம். & உடன், டெர்மினல் ஏற்கனவே துண்டிக்கப்பட்டது என்பதால் முனையத்தின் அளவுருக்கள் வாசிக்க வாய்ப்பு இல்லை என்று எதிர்பார்க்கப்படுகிறது.
வெளியேறு நிலை
காரணங்கள் வெளியேறவோ அல்லது அவ்வாறு செய்ய தயார் செய்யவோ எதிர்பார்க்கலாம்.
தி -onexit கொடி அடுத்த விவாதத்தை ஒரு வெளியேறும் கையாளுதலாகப் பயன்படுத்துகிறது. ஒரு வாதம் இல்லாமல், தற்போதைய வெளியேறும் கையாளுபவர் திரும்பினார்.
தி -வெளியேற வழியில்லை கொடி காரணங்கள் எதிர்பார்க்க வெளியேற தயார்படுத்த ஆனால் உண்மையில் இயக்க முறைமைக்கு கட்டுப்பாட்டை திரும்ப பெறும். பயனர் வரையறுக்கப்படும் வெளியேறும் கையாளுதலும் எதிர்பாரின் சொந்த உள்ளுணர் கையாளர்கள் போலவே இயங்குகிறது. மேலும் எதிர்பார்க்கவில்லை கட்டளைகளை செயல்படுத்த வேண்டும். நீங்கள் மற்ற Tcl நீட்டிப்புகளுடன் எதிர்பார்ப்பதாக இருந்தால் இது பயனுள்ளதாக இருக்கும். தற்போதைய மொழிபெயர்ப்பாளர் (TK சூழலில் பிரதான சாளரம் இருந்தால்) மற்ற டி.clி விரிவாக்கங்கள் சுத்தப்படுத்த முடியும். எதிர்பார்ப்பு இருந்தால் வெளியேறும் மறுபடியும் அழைக்கப்படுகிறது (இருப்பினும் இது நிகழலாம்), கையாளர்கள் மறுபடியும் இல்லை.
வெளியேறும் போது, வளர்ந்த செயல்முறைகளுக்கு அனைத்து இணைப்புகளும் மூடியுள்ளன. மூடப்பட்ட செயல்முறைகளால் மூடி ஒரு EOF ஆக கண்டறியப்படும். வெளியேறும் இயல்பான _exit (2) செயல்முறைக்கு அப்பால் வேறு எந்த நடவடிக்கையும் எடுக்கவில்லை. இதனால், EOF ஐப் பார்க்காத செயல்களைத் தொடரலாம். (உதாரணமாக, ஒரு வெளிப்படையான செயல்முறை என்னவென்பதைக் கண்டறிவது முக்கியம், ஆனால் இவை கணினி சார்ந்தவை, பொதுவாக வெளியேறும் கீழ் (3) கீழ் ஆவணப்படுத்தப்பட்டுள்ளன.) தொடர்ந்து செயல்படும் திறந்த செயல்முறைகள் init மூலமாக மரபுரிமை பெறப்படும்.
நிலையை (அல்லது 0 குறிப்பிடப்படவில்லை எனில்) வெளியேறும் நிலைக்கு திரும்பும் எதிர்பார்க்க . வெளியேறும் ஸ்கிரிப்டின் முடிவை அடைந்தால் மறைமுகமாக செயலாக்கப்படும்.
exp_continue -continue_timer
கட்டளை exp_continue அனுமதிக்கிறது எதிர்பார்க்க தானாகவே அது மீண்டும் வருவதற்கு பதிலாக செயல்படுத்துவதை தொடர வேண்டும். முன்னிருப்பாக exp_continue நேரம் முடிவடைகிறது டைமர் மீட்டமைக்கிறது. தி -continue_timer கொடி மறுதொடக்கம் செய்யப்படுவதை நேரடியாக தடுக்கிறது. (பார்க்க எதிர்பார்க்க மேலும் தகவலுக்கு.)
exp_internal -f கோப்பு மதிப்பு
கண்டறியும் தகவலை உள்ளிடுவதற்கு மேலும் கட்டளைகளை உருவாக்குகிறது எதிர்பார்க்க stderr என்றால் மதிப்பு பூஜ்யம் இல்லை. இந்த வெளியீடு முடக்கப்பட்டுள்ளது மதிப்பு 0 ஆகும். கண்டறிதல் தகவல் ஒவ்வொரு பாத்திரத்தையும் பெற்றுள்ளது, மற்றும் தற்போதைய வெளியீட்டை பொருத்தமாக கொண்டிருக்கும் ஒவ்வொரு முயற்சியையும் கொண்டுள்ளது.
விருப்பமாக இருந்தால் கோப்பு வழங்கப்படுகிறது, அனைத்து வழக்கமான மற்றும் பிழைத்திருத்த வெளியீடு அந்த கோப்பு எழுதப்பட்ட (பொருட்படுத்தாமல் மதிப்பு மதிப்பு ). எந்த முந்தைய கண்டறியும் வெளியீடு கோப்பு மூடப்பட்டது.
தி -info கொடியானது சமீபத்திய தகவல் அல்லாத விவாதங்களின் விளக்கத்தை மீண்டும் வழங்க, exp_internal ஐ உருவாக்குகிறது.
exp_open args -i spawn_id
அசல் ஸ்பான் ஐடிக்கு பொருந்தும் ஒரு Tcl கோப்பு அடையாளத்தை வழங்குகிறது. டி.clிளால் திறக்கப்பட்டால் கோப்பு அடையாளங்காட்டி பயன்படுத்தப்படலாம் திறந்த கட்டளை. (ஸ்பான் ஐடி இனி பயன்படுத்தப்படக்கூடாது காத்திரு செயல்படுத்தப்படக்கூடாது.
தி -leaveopen கொடியை எதிர்பார்க்கும் மூலம் அணுகுவதற்கான ஸ்பான் ஐடியை திறக்கிறது. ஒரு காத்திரு ஸ்பான் ஐடி மீது செயல்பட வேண்டும்.
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 பதிப்பு
ஸ்கிரிப்ட் எதிர்பார் தற்போதைய பதிப்பு இணக்கமான என்று உத்தரவாதம் பயனுள்ளதாக இருக்கும்.
எந்த விவாதமும் இல்லாமல், தற்போதைய பதிப்பு எதிர்பார்க்க திரும்பியது. இந்த பதிப்பு உங்கள் ஸ்கிரிப்டில் குறியிடப்படும். சமீபத்திய பதிப்புகளின் அம்சங்களை நீங்கள் பயன்படுத்துவதில்லை என்பதை நீங்கள் அறிந்திருந்தால், முந்தைய பதிப்பை குறிப்பிடலாம்.
பதிப்புகள் புள்ளிகளால் பிரிக்கப்பட்ட மூன்று எண்களாகும். முதல் முக்கிய எண். பதிப்புகள் எழுதப்பட்ட உரைகள் எதிர்பார்க்க வேறு ஒரு பெரிய எண் கிட்டத்தட்ட நிச்சயமாக வேலை செய்யாது. exp_version முக்கிய எண்கள் பொருந்தவில்லை என்றால் ஒரு பிழை கொடுக்கிறது.
இரண்டாவது சிறிய எண். நடப்பு பதிப்பை விட ஒரு சிறிய சிறு எண்ணிக்கையிலான பதிப்புக்கு எழுதப்பட்ட ஸ்கிரிப்ட்கள் சில புதிய அம்சங்களைச் சார்ந்து இருக்கலாம் மற்றும் இயங்காது. exp_version முக்கிய எண்கள் பொருத்தினால் ஒரு பிழை வரும், ஆனால் ஸ்கிரிப்ட் சிறிய எண் இயங்கும் விட அதிகமாக உள்ளது எதிர்பார்க்க .
மூன்றாவது பதிப்பு ஒப்பிடுகையில் எந்த வகையும் இல்லை என்று ஒரு எண். எனினும், அது அதிகரித்துள்ளது போது எதிர்பார்க்க கூடுதல் விநியோகம் அல்லது தேர்வுமுறை போன்ற மென்பொருள் விநியோகம் எந்த விதத்திலும் மாறியுள்ளது. இது ஒவ்வொரு புதிய சிறு பதிப்புக்கு மீட்டமைக்கப்படுகிறது.
உடன் -exit கொடியை, எதிர்பார்க்க பதிப்பு காலாவதியாகிவிட்டால், ஒரு பிழை அச்சிட்டு, வெளியேறும்.
-ஓட்டுகள் pat1 body1 … -ஆதங்கள் patn bodyn
முறைகள் ஒரு வெளிப்படையான செயல்முறை வெளியீடு பொருந்தும் வரை காத்திருக்கும், ஒரு குறிப்பிட்ட காலம் கடந்து விட்டது, அல்லது ஒரு இறுதி ஆஃப் கோப்பு காணப்படுகிறது. இறுதிக் காலம் காலியாக இருந்தால், அது தவிர்க்கப்படலாம்.
மிகவும் சமீபத்தில் இருந்து வடிவங்கள் expect_before கட்டளை மறைமுகமாக வேறு வடிவங்களுக்கு முன் பயன்படுத்தப்படுகிறது. மிகவும் சமீபத்தில் இருந்து வடிவங்கள் expect_after கட்டளை வேறு எந்த வகைகளிலும் பின்வருமாறு பயன்படுத்தப்படுகிறது.
முழு வாதங்கள் என்றால் எதிர்பார்க்க அறிக்கை ஒன்றுக்கு மேற்பட்ட வரி தேவை, ஒவ்வொரு வாதமும் ஒரு பின்னோக்குடன் முற்றுப்புள்ளி வைப்பதை தவிர்ப்பதற்கு அனைத்து வாதங்களும் "பிரிந்து" இருக்கலாம். இந்த ஒரு வழக்கில், வழக்கமான TCL மாற்றீடுகள் ப்ரேஸ் போதிலும் ஏற்படும்.
ஒரு முறை முக்கியமானது என்றால் ஈஒஎப் , தொடர்புடைய உடல் முடிவடைந்த கோப்பு மீது செயல்படுத்தப்படுகிறது. ஒரு முறை முக்கியமானது என்றால் நேரம் முடிந்தது , உடலுறவு நேரம் முடிவடைகிறது. நேரம் முடிவடையும் முக்கியம் பயன்படுத்தப்படாவிட்டால், ஒரு உள்ளார்ந்த பூஜ்ய நடவடிக்கை காலவரையின்றி செயல்படுத்தப்படுகிறது. இயல்புநிலை முடிவடையும் காலம் 10 வினாடிகள் ஆகும், ஆனால் எடுத்துக்காட்டாக, "set time 30" என்ற கட்டளையால் 30 ஐ அமைக்கலாம். ஒரு முடிவிலா நேரமுடிவு -1 மதிப்பால் நிர்ணயிக்கப்படலாம். ஒரு முறை முக்கியமானது என்றால் இயல்புநிலை , தொடர்புடைய உடல் முடிவடைந்த அல்லது முடிவடைந்த கோப்பில் செயல்படுத்தப்படுகிறது.
ஒரு முறை பொருந்தும் என்றால், தொடர்புடைய உடல் இயக்கப்படுகிறது. எதிர்பார்க்க உடலின் விளைவு (அல்லது எந்த மாதிரி பொருந்தும் என்றால் வெற்று சரம்) கொடுக்கிறது. பல வடிவங்கள் பொருந்திய நிகழ்வில், முதலில் தோன்றும் ஒருவர் உடலைத் தேர்ந்தெடுக்க பயன்படுகிறது.
ஒவ்வொரு முறையும் புதிய வெளியீடு வருவதால், அவர்கள் பட்டியலிடப்பட்ட வரிசையில் ஒவ்வொரு முறைக்கும் ஒப்பிடப்படுகிறது. எனவே, நீங்கள் ஒரு பொருத்தமற்றதாக தோன்றினால், கடைசியாக ஒரு மாதிரி தோன்றும் உத்தரவாதத்திற்கு ஏதேனும் ஒரு பொருளை வழங்குவதன் மூலம் சோதிக்கலாம். எந்தவொரு தடையும் இல்லாத சூழ்நிலையில், நீங்கள் பயன்படுத்த வேண்டும் நேரம் முடிந்தது (நீங்கள் கைமுறையாகப் பேசினால் நீங்கள் விரும்பினால்).
வடிவங்கள் மூன்று வழிகளில் குறிப்பிடப்படுகின்றன. முன்னிருப்பாக, டி.எல்.சி. சரம் போட்டி கட்டளை. (இத்தகைய வடிவங்கள் C-shell வழக்கமான வெளிப்பாடுகள் பொதுவாக "glob" வடிவங்கள் என அழைக்கப்படுகின்றன). தி -gl வேறுவிதமாக பொருந்தக்கூடிய வடிவங்களைப் பாதுகாக்க கொடியைப் பயன்படுத்தலாம் எதிர்பார்க்க அவ்வாறு செய்யும் கொடிகள். "-" தொடங்கும் எந்த வடிவமும் இந்த வழியில் பாதுகாக்கப்பட வேண்டும். ("-" தொடங்கும் அனைத்து சரங்களும் எதிர்கால விருப்பங்களுக்கு ஒதுக்கப்பட்டுள்ளன.)
உதாரணமாக, பின்வரும் துண்டுப்பிரதி ஒரு வெற்றிகரமான உள்நுழைவுக்காக தோற்றமளிக்கிறது. (குறிப்பு கைவிடவோ ஸ்கிரிப்டில் மற்ற இடங்களில் வரையறுக்கப்பட்ட நடைமுறை என்று கருதப்படுகிறது.)
பிஸியாக {பிஸியாக வைக்கும் n; exp_continue} "தவறான கடவுச்சொல்" செயலிழந்து விட்டது இடைநிறுத்தப்பட்ட இடைநிறுத்தத்தை நிறுத்தி விட்டது}
நான்காவது முறையாக மேற்கோள் தேவைப்படுகிறது, ஏனெனில் இது ஒரு இடைவெளியைக் கொண்டிருக்கும்.அதே செயலுடன் கூடிய வடிவங்கள் (3 மற்றும் 4 வது போன்றவை) மீண்டும் நடவடிக்கைகளை பட்டியலிட வேண்டும். இது regexp-style முறைகளைப் பயன்படுத்தி தவிர்க்க முடியும் (கீழே காண்க). குளோபல்-பாணி முறைகளை உருவாக்குவது குறித்த மேலும் தகவல் Tcl கையேட்டில் காணலாம்.
Regexp பாணி முறைகள் Tcl இன் வரையறுக்கப்பட்ட இலக்கணத்தை பின்பற்றுகிறது ரெகுலர் எக்ஸ்ப்ரெஷனை ("வழக்கமான வெளிப்பாடு" க்கான குறுகியது) கட்டளை. regexp வடிவங்கள் கொடிடன் அறிமுகப்படுத்தப்படுகின்றன மறு . முந்தைய உதாரணம் regexp ஐ பயன்படுத்தி மீண்டும் எழுதலாம்:
பிஸியாக {பிஸியாக வைக்கும் n; exp_continue} -அல்லது "தோல்வியடைந்தது | தவறான கடவுச்சொல்"
இரு வகை வடிவங்கள் "unchchored". இதன் அர்த்தம் முழு சரக்கும் பொருந்தவில்லை, ஆனால் சரத்தில் எங்கும் போட்டியை ஆரம்பித்து முடிக்க முடியும் (எல்லாவற்றையும் பொருந்தும் வரை). ஒரு சரத்தின் தொடக்கத்தை பொருத்து ^ பயன்படுத்தவும், இறுதியில் $ பொருந்தும். ஒரு சரத்தின் முடிவில் நீங்கள் காத்திருக்கவில்லை என்றால், சத்தத்தின் நடுவில் உங்கள் பிரதிபலிப்புகள் எளிதில் முடிவடையும், ஏனெனில் அவை வெளிப்படையான செயல்முறையில் இருந்து எதிரொலிக்கும். இன்னும் சரியான முடிவுகளை உற்பத்தி செய்யும் போது, வெளியீடு இயற்கைக்கு மாறானதாக இருக்கும். எனவே, $ string இன் எழுத்துகளில் சரியாக விவரிக்க முடியுமானால், $ ஐ பயன்படுத்துவது ஊக்கமளிக்கிறது.
பல ஆசிரியர்களில், ^ மற்றும் $ வரிசைகள் முறையே வரிகளின் தொடக்க மற்றும் முடிவுக்கு பொருந்துகின்றன. எவ்வாறாயினும், எதிர்பார்ப்பில் வரி சார்ந்ததாக இருக்காது என்பதால், இந்த எழுத்துக்கள் தற்போதிருக்கும் பொருந்தக்கூடிய தாங்கியை எதிர்பார்க்கும் தரவின் தொடக்கம் மற்றும் முடிவுக்கு (வரிகளுக்கு எதிராக) பொருந்துகின்றன. (மேலும், கீழே உள்ள குறிப்பு "கணினி அஜீரணத்தில்" பார்க்கவும்.)
தி -யாத் கொடியானது ஒரு "துல்லியமான" சரமாகப் பொருந்தும் வகையில் அமைகிறது. *, ^ மற்றும் ^ ஆகியவற்றுக்கான எந்த விளக்கமும் செய்யப்படவில்லை (வழக்கமான TCL மரபுகள் இன்னமும் கவனிக்கப்பட வேண்டும்). சரியான வடிவங்கள் எப்போதும் கையாளப்படுகின்றன.
தி -nocase கொடியானது வெளியீட்டின் பெரிய எழுத்துக்குறிகளைக் குறைக்கின்றன, அவை ஸ்மால் சிற்றெழுத்துகள் போலவே ஒப்பிடப்படுகின்றன. முறை பாதிக்கப்படவில்லை.
வெளியீட்டை படிக்கும்போது, 2000 க்கும் மேற்பட்ட பைட்டுகள் முந்தைய பைட்டுகளை "மறந்துவிட்டன" என்று கட்டாயப்படுத்தலாம். இது செயல்பாடு மூலம் மாற்றப்படலாம் match_max . (அதிகப்படியான பெரிய மதிப்புகள் மாதிரி மேட்ச் மெதுவாக்கலாம் என்பதை நினைவில் கொள்ளுங்கள்.) patlist இருக்கிறது full_buffer , தொடர்புடைய உடல் இயங்கினால் match_max பைட்டுகள் பெறப்பட்டு வேறு எந்த வடிவங்களும் பொருந்தவில்லை. இல்லையா full_buffer முக்கிய வார்த்தை பயன்படுத்தப்படுகிறது, மறக்கப்பட்ட எழுத்துக்குறிகள் எதிர்பார்க்கப்படுகின்றன (buffer).
என்றால் patlist முக்கியம் ஏதுமில்லை , மற்றும் nulls அனுமதி (வழியாக remove_nulls கட்டளை), ஒற்றை ASCII 0 பொருத்தப்பட்டால் அதனுடன் தொடர்புடைய உடல் இயக்கப்படுகிறது. Glob அல்லது regexp வடிவங்களின் வழியாக 0 bytes ஐ பொருத்த முடியாது.
ஒரு முறை (அல்லது eof அல்லது full_buffer) பொருந்தும் போது, எந்த பொருந்தும் மற்றும் முன்னர் பொருந்தாத வெளியீடு மாறி சேமிக்கப்படுகிறது expect_out (தாங்கல்) . 9 regexp substring matches வரை மாறிகள் சேமிக்கப்படும் expect_out (1, சரம்) மூலம் expect_out (9, சரம்) . என்றால் -indices கொடி முன், தொடக்க மற்றும் முடிவடையும் குறியீடுகள் (பொருத்தமான ஒரு வடிவத்தில் lrange ) 10 சரங்களை மாறிகள் சேமிக்கப்படும் expect_out (எக்ஸ், தொடங்க) மற்றும் expect_out (எக்ஸ், இறுதியில்) X என்பது ஒரு இலக்காகும், இடையகத்தில் உள்ள மாற்று நிலைக்கு ஒத்துள்ளது. 0, முழு மாதிரியைப் பொருத்து சரங்களைக் குறிக்கிறது, மேலும் குளோப் வடிவங்களுக்கும் அத்துடன் regexp வடிவங்களுக்கும் உருவாக்கப்படுகிறது. உதாரணமாக, ஒரு செயல்முறை "abcdefgh n" இன் வெளியீட்டை உற்பத்தி செய்தால், இதன் விளைவாக:
"சிடி"
பின்வரும் அறிக்கைகளை நிறைவேற்றியது போல் உள்ளது:
set expectout (0, சரம்) cd set expected_out (buffer) abcd
மற்றும் "efgh n" வெளியீடு இடையகத்தில் உள்ளது. ஒரு செயல்முறை வெளியீடு "abbbcabkkkka n" தயாரித்திருந்தால், இதன் விளைவாக:
எதிர்பார்ப்புகள் -இது "b (b *). * (k +)"
பின்வரும் அறிக்கைகளை நிறைவேற்றியது போல் உள்ளது:
(1, தொடக்க) 2 தொகுப்பு expect_out (1, முடிவு) 3 தொகுப்பு expect_out (1, சரம்) பிபி தொகுப்பு expect_out (0, சரம்) பிபி set_out (0, சரம்) (2, துவக்கம்) 10 தொகுப்பு expect_out (2, முடிவு) 10 தொகுப்பு expected_out (2, சரம்) k set_out (buffer) abbbcabkkkk
மற்றும் "a n" வெளியீடு தாங்கியில் உள்ளது. செயல்முறையிலிருந்து எந்த வெளியீடும் படிக்காமல் "*" (மற்றும் -அல் ". *") முறைமை வெளியீடு இடையகத்தை பறிப்பதாக இருக்கும்.
வழக்கமாக, பொருத்தப்பட்ட வெளியீடு எதிர்பார்க்கப்படுபவரின் உள் உறுப்புகளிலிருந்து நிராகரிக்கப்படுகிறது. இது ஒரு முன்மாதிரி முன்னொட்டுவதன் மூலம் தடுக்கப்படலாம் -notransfer கொடி. இந்த கொடி பரிசோதனையில் குறிப்பாகப் பயனுள்ளதாகும் (பரிசோதனை செய்யும் போது வசதிக்காக "குறிக்கப்படவில்லை").
பொருத்தமான வெளியீட்டை (அல்லது eof அல்லது full_buffer) தொடர்புடைய ஸ்பான்டாக் ஐடி சேமிக்கப்படுகிறது expect_out (spawn_id) .
தி -நேரம் முடிந்தது கொடியானது, தற்போதைய மதிப்பைக் கட்டளையிடுவதால், பின்வரும் மதிப்பை காலவரையறையின் மாறி மதிப்பைப் பயன்படுத்துவதற்குப் பதிலாக ஒரு முடிவடையாமல் பயன்படுத்தலாம்.
முன்னிருப்பாக, நடப்பு செயல்முறையிலிருந்து வெளியீட்டிற்கு எதிராக வடிவங்கள் பொருந்துகின்றன, இருப்பினும் -நான் கொடி பெயரிடப்பட்ட spawn_id பட்டியலில் வெளியீடு எந்த பின்வரும் வடிவங்கள் எதிராக பொருந்தும் (அடுத்த வரை -நான் ). Spawn_id பட்டியலில் spawn_ids என்ற வெற்று இடைவெளியின் பட்டியல் அல்லது spawn_ids போன்ற ஒரு பட்டியலை குறிப்பிடும் மாறி இருக்க வேண்டும்.
எடுத்துக்காட்டுக்கு, பின்வரும் செயல்முறை தற்போதைய செயல்முறையில் இருந்து "இணைக்கப்பட்ட" அல்லது $ proc2 என்ற பெயரிடப்பட்ட spawn_id இலிருந்து "பிஸியாக", "தோல்வி" அல்லது "தவறான கடவுச்சொல்" காத்திருக்கிறது.
{-i $ proc2 பிஸியாக {bis busy n; exp_continue} -அல்லது "தோல்வியடைந்தது | தவறான கடவுச்சொல்"
உலக மாறி மதிப்பு any_spawn_id எல்லாவற்றிற்கும் பெயரிடப்பட்ட எந்த spawn_ids வடிவங்களுக்கும் பொருந்தும் வகையில் பயன்படுத்தப்படலாம் -நான் தற்போதைய கொடிகள் எதிர்பார்க்க கட்டளை. ஒரு இருந்து spawn_id -நான் தொடர்புடைய அமைப்பு இல்லாத கொடியை (அதாவது, உடனடியாக வேறொருவரால் தொடரப்பட்டது -நான் ) அதே மாதிரியான வேறு எந்த வடிவங்களுக்கும் கிடைக்கும் எதிர்பார்க்க தொடர்புடைய கட்டளை any_spawn_id.
தி -நான் கொடியானது ஒரு உலகளாவிய மாறி பெயரிடலாம், இதில் மாறிவிடும் ஸ்பான்ட் ஐடிகளின் பட்டியலுக்கு மாறிவிடும். மாறி மாறும் போதெல்லாம் அதை வாசிக்கும். கட்டளை செயல்பாட்டில் இருக்கும்போது I / O மூலத்தை மாற்றுவதற்கான ஒரு வழி இது அளிக்கிறது. இந்த வழியில் வழங்கப்பட்ட ஸ்பான் ஐடிகள் "மறைமுக" ஸ்பான் ஐடிகள் என்று அழைக்கப்படுகின்றன.
போன்ற செயல்கள் இடைவெளி மற்றும் தொடர்ந்து கட்டுப்பாடு கட்டுப்பாட்டுக்கு (அதாவது, ஐந்து , proc ) வழக்கம் போல் நடந்து கொள்ள வேண்டும். கட்டளை exp_continue அனுமதிக்கிறது எதிர்பார்க்க தானாகவே அது மீண்டும் வருவதற்கு பதிலாக செயல்படுத்துவதை தொடர வேண்டும்.
இது வெளிப்படையான சுழற்சிகளை தவிர்ப்பது அல்லது தொடர்ச்சியான எதிர்பார்ப்பு அறிக்கைகள். பின்வரும் உதாரணம் rlogin தானியக்க ஒரு துண்டு பகுதியாகும். தி exp_continue ஒரு இரண்டாவது எழுத வேண்டும் தவிர்க்கிறது எதிர்பார்க்க rlogin கடவுச்சொல்லை கடவுச்சொல்லினால், அறிக்கை (மீண்டும் வரியில் பார்க்க).
$ host_expert "(" sent













