Linux / Unix கட்டளை எதிர்பார்க்கிறது

எதிர்பாருங்கள் ஒரு ஸ்கிரிப்ட்டின் படி மற்ற ஊடாடும் திட்டங்களுடன் பேசும் ஒரு திட்டம். ஸ்கிரிப்ட்டைத் தொடர்ந்து, எதிர்பார்ப்பு என்னவென்றால், ஒரு திட்டத்தில் இருந்து எதிர்பார்ப்பது என்ன, என்ன சரியான பதில் இருக்க வேண்டும் என்று எதிர்பார்க்கப்படுகிறது. உரையாடலை வழிநடத்த ஒரு மொழியிலான மொழி கிளை மற்றும் உயர் நிலை கட்டுப்பாட்டு கட்டமைப்புகளை வழங்குகிறது. கூடுதலாக, பயனர் கட்டுப்பாட்டை எடுத்து, நேரடியாக ஸ்கிரிப்ட் கட்டுப்பாட்டை திரும்ப, விரும்பிய போது நேரடியாக தொடர்பு கொள்ள முடியும்.

எதிர்பார்ப்பு எதிர்பார்ப்பு மற்றும் Tk இன் கலவையாகும். இது எதிர்பார்ப்பு மற்றும் TK இன் ஆசை போன்ற செயல்படுகிறது. எதிர்பார்த்த டி.எல்.சி இல்லாமல் C அல்லது C ++ இல் நேரடியாகப் பயன்படுத்தலாம்.

யூக்பால், கர்மிட் மற்றும் பிற மோடம் கண்ட்ரோல் புரோகிராம்கள் மூலம் பிரபலப்படுத்தப்படும் காட்சிகளை அனுப்ப / எதிர்பார்க்கும் கருத்திலிருந்து "எதிர்பார்ப்பு" என்ற பெயர் வருகிறது. இருப்பினும் யூகப் போலல்லாது, எதிர்பார்ப்பு பொதுவானது, எனவே அது எந்தவொரு நிரல் மற்றும் பணி மனதில் மனதில் ஒரு பயனர் நிலைக் கட்டளையாக செயல்பட முடியும். எதிர்பார்ப்பு ஒரே நேரத்தில் பல நிகழ்ச்சிகளுடன் பேசலாம்.

என்ன செய்ய முடியும் என்று எதிர்பார்க்கலாம்

உதாரணமாக, எதிர்பார்ப்பு கட்டளையை செய்யக்கூடிய சில விஷயங்கள் இங்கே உள்ளன:

ஷெல் இந்த பணிகளைச் செய்ய முடியாது என்பதற்கான பல்வேறு காரணங்கள் உள்ளன. எல்லோரும் எதிர்பார்க்கலாம்.

பொதுவாக, எதிர்பார்ப்பு நிரல் மற்றும் பயனர் இடையே தொடர்பு தேவைப்படும் எந்த திட்டத்தை இயக்கும் பயனுள்ளதாக இருக்கும். அவசியமானவை அனைத்தும் தொடர்புபடுத்தப்படக்கூடியவையாகும். எதிர்பார்த்த திட்டம் கட்டுப்படுத்தப்படும் இல்லாமல் பயனர் கட்டுப்பாட்டு மீண்டும் கொடுக்க முடியும். இதேபோல், பயனர் எப்போது வேண்டுமானாலும் ஸ்கிரிப்ட்டுக்குக் கட்டுப்படுத்த முடியும்.

பயன்பாடு

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 ஐப் பயன்படுத்தும் போது, ​​இந்த விருப்பம் -இன்டாக்டிவ் என குறிப்பிடப்படுகிறது.

- விருப்பங்கள் முடிவடைவதைப் பயன்படுத்தலாம். எதிர்பார்ப்பு மூலம் விளக்கப்படாமல் உங்கள் ஸ்கிரிப்டில் ஒரு விருப்பத்தை போன்ற வாதத்தை அனுப்ப விரும்பினால் இது பயனுள்ளதாக இருக்கும். இது உபயோகமாக # வைக்கப்படும்! எதிர்பார்ப்பு மூலம் எந்த கொடிய விளக்கத்தையும் தடுக்க வரி. உதாரணமாக, கீழ்க்காணும் அசல் வாதங்கள் மாறி argv உள்ள ஸ்கிரிப்ட் பெயர் உட்பட.

#! / 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 க்கு விண்ணப்பிக்கலாம். & உடன், டெர்மினல் ஏற்கனவே துண்டிக்கப்பட்டது என்பதால் முனையத்தின் அளவுருக்கள் வாசிக்க வாய்ப்பு இல்லை என்று எதிர்பார்க்கப்படுகிறது.

வெளியேறு [நிலை]

காரணங்கள் வெளியேறவோ அல்லது அவ்வாறு செய்ய தயார் செய்யவோ எதிர்பார்க்கலாம்.

-எனக்குரிய கொடி அடுத்த வாதம் ஒரு வெளியேறும் கையாளுதலாக பயன்படுத்தப்படுகிறது. ஒரு வாதம் இல்லாமல், தற்போதைய வெளியேறும் கையாளுபவர் திரும்பினார்.

வெளியேறுவதற்கு தயார் செய்ய எதிர்பார்க்கிறது ஆனால் இயக்க முறைமையில் கட்டுப்பாட்டுக்குத் திரும்புவதைக் குறைக்க வேண்டும். பயனர் வரையறுக்கப்படும் வெளியேறும் கையாளுதலும் எதிர்பாரின் சொந்த உள்ளுணர் கையாளர்கள் போலவே இயங்குகிறது. மேலும் எதிர்பார்க்கவில்லை கட்டளைகளை செயல்படுத்த வேண்டும். நீங்கள் மற்ற Tcl நீட்டிப்புகளுடன் எதிர்பார்ப்பதாக இருந்தால் இது பயனுள்ளதாக இருக்கும். தற்போதைய மொழிபெயர்ப்பாளர் (TK சூழலில் பிரதான சாளரம் இருந்தால்) மற்ற டி.clி விரிவாக்கங்கள் சுத்தப்படுத்த முடியும். எதிர்பார்ப்பு வெளியேறும் மீண்டும் அழைக்கப்பட்டிருந்தால் (எனினும் இது நிகழலாம்), கையாளர்கள் மீண்டும் இயக்கப்படவில்லை.

வெளியேறும் போது, ​​வளர்ந்த செயல்முறைகளுக்கு அனைத்து இணைப்புகளும் மூடியுள்ளன. மூடப்பட்ட செயல்முறைகளால் மூடி ஒரு EOF ஆக கண்டறியப்படும். வெளியேறும் எந்த வேறு செயல்களும் சாதாரண _exit (2) செயல்முறைக்கு அப்பால் எடுக்கும். இதனால், EOF ஐப் பார்க்காத செயல்களைத் தொடரலாம். (உதாரணமாக, ஒரு வெளிப்படையான செயல்முறை என்னவென்பதைக் கண்டறிவது முக்கியம், ஆனால் இவை கணினி சார்ந்தவை, பொதுவாக வெளியேறும் கீழ் (3) கீழ் ஆவணப்படுத்தப்பட்டுள்ளன.) தொடர்ந்து செயல்படும் திறந்த செயல்முறைகள் init மூலமாக மரபுரிமை பெறப்படும்.

நிலை (அல்லது குறிப்பிடப்படவில்லை எனில் 0 என்றால்) எதிர்பார்க்கப்படும் வெளியேறும் நிலையில் திரும்பப்படுகிறது. ஸ்கிரிப்ட்டின் முடிவை அடைந்தால் வெளியேறவும் மறைமுகமாக செயல்படுத்தப்படுகிறது.

exp_continue [-continue_timer]
கட்டளை exp_continue தானாகவே சாதாரணமாக திரும்புவதை விட மீண்டும் செயல்படுத்துவதை எதிர்பார்க்கிறது . முன்னிருப்பாக exp_continue நேரத்தை டைமர்ட்டை மீட்டமைக்கிறது. -continue_timer flag மறுதொடக்கம் இருந்து டைமர் தடுக்கிறது. (மேலும் தகவலுக்கு எதிர்பார்க்கவும் பார்க்கவும்.)

exp_internal [-f கோப்பு] மதிப்பு
மதிப்பு பூஜ்யம் இல்லையெனில், stderrஎதிர்பார்த்து , கண்டறியும் தகவலை அனுப்புவதற்கு மேலும் கட்டளைகளை ஏற்படுத்துகிறது. மதிப்பு 0 என்றால் இந்த வெளியீடு முடக்கப்பட்டுள்ளது. கண்டறிதல் தகவல் ஒவ்வொரு கதாபாத்திரத்தையும் உள்ளடக்கியது, மற்றும் வடிவங்களுக்கு எதிராக தற்போதைய வெளியீட்டை பொருத்த ஒவ்வொரு முயற்சியையும் கொண்டுள்ளது.

விருப்ப கோப்பு வழங்கப்பட்டால், அனைத்து சாதாரண மற்றும் பிழைத்திருத்த வெளியீடு அந்த கோப்புக்கு (மதிப்பின் மதிப்பை பொருட்படுத்தாமல்) எழுதப்படும். எந்த முந்தைய கண்டறியும் வெளியீடு கோப்பு மூடப்பட்டது.

சமீபத்திய-தகவல் விவாதங்களின் விளக்கத்தை வழங்க, -info கொடி exp_internal ஐ உருவாக்குகிறது.

exp_open [args] [-i spawn_id]
அசல் ஸ்பான் ஐடிக்கு பொருந்தும் ஒரு Tcl கோப்பு அடையாளத்தை வழங்குகிறது. டி.clின் திறந்த கட்டளையால் திறக்கப்பட்டிருந்தால் கோப்பு அடையாளங்காட்டி பயன்படுத்தப்படலாம். (ஸ்பான் ஐடி இனி பயன்படுத்தப்படக்கூடாது. ஒரு காத்திருப்பு செயல்படுத்தப்படக்கூடாது.

எதிர்பார்க்கும் கட்டளைகளை அணுகுவதற்காக ஸ்பெய்ன் ஐடி திறந்திருக்கும் -அலுவலகம் கொடியிடுகிறது. ஒரு காத்திருப்பு கடற்படை அடையாளத்தின் மீது செயல்படுத்தப்பட வேண்டும்.

exp_pid [-i spawn_id]
தற்போது வெளிப்படும் செயல்முறைக்கு தொடர்புடைய செயலாக்க ஐடி கொடுக்கிறது. -i கொடி பயன்படுத்தப்பட்டால், இந்த பிட் கொடுக்கப்பட்ட ஸ்பான் ஐடிக்கு ஒத்துள்ளது.

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]
முறைகள் ஒரு வெளிப்படையான செயல்முறை வெளியீடு பொருந்தும் வரை காத்திருக்கும், ஒரு குறிப்பிட்ட காலம் கடந்து விட்டது, அல்லது ஒரு இறுதி ஆஃப் கோப்பு காணப்படுகிறது. இறுதிக் காலம் காலியாக இருந்தால், அது தவிர்க்கப்படலாம்.

மிக சமீபத்தில் எதிர்பார்க்கப்படும் கட்டளைகளின் வடிவங்கள் மற்ற வடிவங்களுக்கு முன் மறைமுகமாக பயன்படுத்தப்படுகின்றன. மிக சமீபத்திய எதிர்பார்ப்பில் இருந்து வடிவங்கள் வேறு எந்த வடிவங்களுக்கும் பின்னர் உட்கார்ந்து பயன்படுத்தப்படுகின்றன.

முழு எதிர்பார்ப்பு அறிக்கையுடனான வாதங்கள் ஒன்றுக்கு மேற்பட்ட வரி தேவைப்பட்டால், ஒவ்வொரு வரியும் முதுகெலும்புடன் முடிக்கப்படுவதை தவிர்ப்பதற்கு அனைத்து வாதங்களும் "பிரிந்து" இருக்கலாம். இந்த ஒரு வழக்கில், வழக்கமான TCL மாற்றீடுகள் ப்ரேஸ் போதிலும் ஏற்படும்.

ஒரு வடிவம் முக்கிய eof என்றால், தொடர்புடைய உடல் முடிவடைந்த கோப்பு மீது செயல்படுத்தப்படுகிறது. ஒரு முறை முக்கிய சொல் முடிவடைந்தால் , அதனுடன் தொடர்புடைய உடற்கூறு நேரம் முடிவடைகிறது. நேரம் முடிவடையும் முக்கியம் பயன்படுத்தப்படாவிட்டால், ஒரு உள்ளார்ந்த பூஜ்ய நடவடிக்கை காலவரையின்றி செயல்படுத்தப்படுகிறது. இயல்புநிலை முடிவடையும் காலம் 10 வினாடிகள் ஆகும், ஆனால் எடுத்துக்காட்டாக, "set time 30" என்ற கட்டளையால் 30 ஐ அமைக்கலாம். ஒரு முடிவிலா நேரமுடிவு -1 மதிப்பால் நிர்ணயிக்கப்படலாம். ஒரு முறை முக்கிய இயல்புநிலை என்றால், தொடர்புடைய உடல் முடிவடைந்த அல்லது முடிவடைந்த கோப்பில் செயல்படுத்தப்படுகிறது.

ஒரு முறை பொருந்தும் என்றால், தொடர்புடைய உடல் இயக்கப்படுகிறது. உடலின் விளைவு (அல்லது எந்த மாதிரி பொருந்தும் என்றால் வெற்று சரம்) திரும்ப எதிர்பார்க்கப்படுகிறது . பல வடிவங்கள் பொருந்திய நிகழ்வில், முதலில் தோன்றும் ஒருவர் உடலைத் தேர்ந்தெடுக்க பயன்படுகிறது.

ஒவ்வொரு முறையும் புதிய வெளியீடு வருவதால், அவர்கள் பட்டியலிடப்பட்ட வரிசையில் ஒவ்வொரு முறைக்கும் ஒப்பிடப்படுகிறது. எனவே, நீங்கள் ஒரு பொருத்தமற்றதாக தோன்றினால், கடைசியாக ஒரு மாதிரி தோன்றும் உத்தரவாதத்திற்கு ஏதேனும் ஒரு பொருளை வழங்குவதன் மூலம் சோதிக்கலாம். எந்தவொரு தடையும் இல்லாத சூழ்நிலைகளில், நீங்கள் காலவரையறையைப் பயன்படுத்த வேண்டும் (நீங்கள் கைமுறையாக தொடர்புகொண்டால் போதும்).

வடிவங்கள் மூன்று வழிகளில் குறிப்பிடப்படுகின்றன. முன்னிருப்பாக, டி.clின் சரம் பொருந்திய கட்டளையைப் போல வடிவங்கள் குறிப்பிடப்படுகின்றன. (இத்தகைய வடிவங்கள் C-shell வழக்கமான வெளிப்பாடுகள் பொதுவாக "glob" வடிவங்கள் என அழைக்கப்படுகின்றன). அவ்வாறு இருந்து கொடிகளை எதிர்பார்க்கும் வடிவங்களைப் பாதுகாக்க, -gl கொடி பயன்படுத்தப்படலாம். "-" தொடங்கும் எந்த வடிவமும் இந்த வழியில் பாதுகாக்கப்பட வேண்டும். ("-" தொடங்கும் அனைத்து சரங்களும் எதிர்கால விருப்பங்களுக்கு ஒதுக்கப்பட்டுள்ளன.)

உதாரணமாக, பின்வரும் துண்டுப்பிரதி ஒரு வெற்றிகரமான உள்நுழைவுக்காக தோற்றமளிக்கிறது. ( முறிவு என்பது ஸ்கிரிப்ட்டில் வேறு இடத்தில் வரையறுக்கப்பட்ட நடைமுறை என்று கருதப்படுகிறது.)

பிஸியாக {பிஸியாக வைக்கும் \ n; exp_continue} "தவறான கடவுச்சொல்" செயலிழந்து விட்டது இடைநிறுத்தப்பட்ட இடைநிறுத்தத்தை நிறுத்தி விட்டது}

நான்காவது முறையாக மேற்கோள் தேவைப்படுகிறது, ஏனெனில் இது ஒரு இடைவெளியைக் கொண்டிருக்கும். அதே செயலுடன் கூடிய வடிவங்கள் (3 மற்றும் 4 வது போன்றவை) மீண்டும் நடவடிக்கைகளை பட்டியலிட வேண்டும். இது regexp-style முறைகளைப் பயன்படுத்தி தவிர்க்க முடியும் (கீழே காண்க). குளோபல்-பாணி முறைகளை உருவாக்குவது குறித்த மேலும் தகவல் Tcl கையேட்டில் காணலாம்.

Regexp-style முறைகள் Tcl இன் regexp ("வழக்கமான வெளிப்பாடு" க்கான குறுகியது) கட்டளையால் வரையறுக்கப்பட்ட இலக்கணத்தை பின்பற்றுகிறது. regexp வடிவங்கள் கொடி- ஆர்வத்துடன் அறிமுகப்படுத்தப்படுகின்றன. முந்தைய உதாரணம் regexp ஐ பயன்படுத்தி மீண்டும் எழுதலாம்:

பிஸியாக {பிஸியாக வைக்கும் \ n; exp_continue} -அல்லது "தோல்வியடைந்தது | தவறான கடவுச்சொல்"

இரு வகை வடிவங்கள் "unchchored". இதன் அர்த்தம் முழு சரக்கும் பொருந்தவில்லை, ஆனால் சரத்தில் எங்கும் போட்டியை ஆரம்பித்து முடிக்க முடியும் (எல்லாவற்றையும் பொருந்தும் வரை). ஒரு சரத்தின் தொடக்கத்தை பொருத்து ^ பயன்படுத்தவும், இறுதியில் $ பொருந்தும். ஒரு சரத்தின் முடிவில் நீங்கள் காத்திருக்கவில்லை என்றால், சத்தத்தின் நடுவில் உங்கள் பிரதிபலிப்புகள் எளிதில் முடிவடையும், ஏனெனில் அவை வெளிப்படையான செயல்முறையில் இருந்து எதிரொலிக்கும். இன்னும் சரியான முடிவுகளை உற்பத்தி செய்யும் போது, ​​வெளியீடு இயற்கைக்கு மாறானதாக இருக்கும். எனவே, $ string இன் எழுத்துகளில் சரியாக விவரிக்க முடியுமானால், $ ஐ பயன்படுத்துவது ஊக்கமளிக்கிறது.

பல ஆசிரியர்களில், ^ மற்றும் $ வரிசைகள் முறையே வரிகளின் தொடக்க மற்றும் முடிவுக்கு பொருந்துகின்றன. எவ்வாறாயினும், எதிர்பார்ப்பில் வரி சார்ந்ததாக இருக்காது என்பதால், இந்த எழுத்துக்கள் தற்போதிருக்கும் பொருந்தக்கூடிய தாங்கியை எதிர்பார்க்கும் தரவின் தொடக்கம் மற்றும் முடிவுக்கு (வரிகளுக்கு எதிராக) பொருந்துகின்றன. (மேலும், கீழே உள்ள குறிப்பு "கணினி அஜீரணத்தில்" பார்க்கவும்.)

-ex flag ஒரு முறை "துல்லியமான" சரமாக பொருந்துகிறது. *, ^ மற்றும் ^ ஆகியவற்றுக்கான எந்த விளக்கமும் செய்யப்படவில்லை (வழக்கமான TCL மரபுகள் இன்னமும் கவனிக்கப்பட வேண்டும்). சரியான வடிவங்கள் எப்போதும் கையாளப்படுகின்றன.

நொக்கஸ் கொடியானது வெளியீட்டின் பெரிய எழுத்துக்குறிகள் சிறிய எழுத்துக்குறிகளைப் போல ஒப்பிடுவதாகும். முறை பாதிக்கப்படவில்லை.

வெளியீட்டை படிக்கும்போது, ​​2000 க்கும் மேற்பட்ட பைட்டுகள் முந்தைய பைட்டுகளை "மறந்துவிட்டன" என்று கட்டாயப்படுத்தலாம். இது match_max உடன் மாற்றப்படலாம். (அதிகப்படியான பெரிய மதிப்புகள் மாதிரி மேட்ச் வேகத்தை குறைக்க முடியும் என்பதை நினைவில் கொள்ளுங்கள்.) Patlist full_buffer இருந்தால், match_max பைட்டுகள் பெற்றிருந்தால், அதனுடன் தொடர்புடைய வேறு எந்த முறைகளும் பொருந்தவில்லை. Full_buffer முக்கிய சொல்லை பயன்படுத்துகிறாரா இல்லையோ, மறக்கப்பட்ட எழுத்துக்குறிகள் எதிர்பார்க்கப்படும் (buffer) எழுதப்படும்.

Patlist keyword பூஜ்யமாக இருந்தால் , nulls அனுமதிக்கப்படும் ( remove_nulls கட்டளை வழியாக), ஒரு ஒற்றை ASCII 0 பொருந்தும் என்றால் தொடர்புடைய உடல் செயல்படுத்தப்படுகிறது. Glob அல்லது regexp வடிவங்களின் வழியாக 0 bytes ஐ பொருத்த முடியாது.

ஒரு முறை (அல்லது eof அல்லது full_buffer) பொருந்தும் போது, ​​எந்த பொருந்தும் மற்றும் முன்பு பொருந்தாத வெளியீடு மாறி expected_out (buffer) இல் சேமிக்கப்படுகிறது. 9 regexp substring matches வரை எதிர்பார்க்கப்படுகிறது var_out_out (1, சரம்) expect_out (9, சரம்) . ஒரு வகைக்கு முன்பு -இயக்கங்கள் கொடி பயன்படுத்தப்பட்டால், 10 சரங்களின் தொடக்க மற்றும் முடிவான குறியீடுகள் ( வஞ்சனைக்கு பொருத்தமான ஒரு வடிவத்தில்) மாறிகள் எதிர்பார்க்கப்படும் variable_out (X, start) மற்றும் expect_out (X, end) எண், இடைநிலை உள்ள substring நிலையை ஒத்துள்ளது. 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" வெளியீடு தாங்கியில் உள்ளது. செயல்முறையிலிருந்து எந்த வெளியீடும் படிக்காமல் "*" (மற்றும் -அல் ". *") முறைமை வெளியீடு இடையகத்தை பறிப்பதாக இருக்கும்.

வழக்கமாக, பொருத்தப்பட்ட வெளியீடு எதிர்பார்க்கப்படுபவரின் உள் உறுப்புகளிலிருந்து நிராகரிக்கப்படுகிறது. -தயாரிப்புக் கொடியைக் கொண்ட முன்மாதிரியைப் பயன்படுத்துவதன் மூலம் இது தடுக்கப்படலாம் . இந்த கொடி பரிசோதனையில் குறிப்பாகப் பயனுள்ளதாகும் (பரிசோதனை செய்யும் போது வசதிக்காக "குறிக்கப்படவில்லை").

பொருத்தமான வெளியீட்டை (அல்லது eof அல்லது full_buffer) தொடர்புடைய ஸ்பான்டாக் ஐடி expected_out (spawn_id) இல் சேமிக்கப்படுகிறது.

நேரம் முடிவடைந்த கொடியானது தற்போதைய மதிப்பைக் கட்டளையிடுவது, பின்வரும் மதிப்பை காலவரையறையின் மாறி மதிப்பைப் பயன்படுத்துவதற்குப் பதிலாக ஒரு முடிவைப் பயன்படுத்துகிறது.

இயல்புநிலையாக, நடப்பு செயல்முறையிலிருந்து வெளியீட்டிற்கு எதிராக வடிவங்கள் பொருந்துகின்றன, இருப்பினும் -i flag என்பது பெயரிடப்பட்ட spawn_id பட்டியலில் இருந்து வெளியீட்டை அறிவிக்கிறது (அடுத்த - வரை). Spawn_id பட்டியலில் spawn_ids என்ற வெற்று இடைவெளியின் பட்டியல் அல்லது spawn_ids போன்ற ஒரு பட்டியலை குறிப்பிடும் மாறி இருக்க வேண்டும்.

எடுத்துக்காட்டுக்கு, பின்வரும் செயல்முறை தற்போதைய செயல்முறையில் இருந்து "இணைக்கப்பட்ட" அல்லது $ proc2 என்ற பெயரிடப்பட்ட spawn_id இலிருந்து "பிஸியாக", "தோல்வி" அல்லது "தவறான கடவுச்சொல்" காத்திருக்கிறது.

{-i $ proc2 பிஸியாக {bis busy \ n; exp_continue} -அல்லது "தோல்வியடைந்தது | தவறான கடவுச்சொல்"

நடப்பு எதிர்பார்ப்பு கட்டளையில் மற்ற அனைத்து - கொடிகள் பெயரிடப்பட்ட எந்த spawn_ids க்கு மாதிரிகள் பொருந்தும் உலகளாவிய மாறி any_spawn_id மதிப்பு பயன்படுத்தப்படலாம். தொடர்புடைய-முறையுடன் (அதாவது, வேறொரு -i உடனடியாக தொடர்ந்து) ஒரு -i கொடியில் இருந்து spawn_id ஆனது எந்தவொரு ஸ்தானத்தையுடனும் எந்தவிதமான கட்டளையிலும் எந்த _spawn_id உடன் தொடர்புடையதாக இருக்கும் .

-i கொடி உலக மாறி பெயரிடலாம், அதேசமயத்தில் ஸ்பான்ட் ஐடிகளின் பட்டியல் மாறி வாசிக்கப்படுகிறது. மாறி மாறும் போதெல்லாம் அதை வாசிக்கும். கட்டளை செயல்பாட்டில் இருக்கும்போது I / O மூலத்தை மாற்றுவதற்கான ஒரு வழி இது அளிக்கிறது. இந்த வழியில் வழங்கப்பட்ட ஸ்பான் ஐடிகள் "மறைமுக" ஸ்பான் ஐடிகள் என்று அழைக்கப்படுகின்றன.

முறிவு மற்றும் தொடர்ச்சியான செயல்கள் கட்டுப்பாட்டு கட்டமைப்புகளை (அதாவது, proc க்கு ) வழக்கமாக நடந்து கொள்ளுதல் போன்ற செயல்கள். கட்டளை exp_continue தானாகவே சாதாரணமாக திரும்புவதை விட மீண்டும் செயல்படுத்துவதை எதிர்பார்க்கிறது .

இது வெளிப்படையான சுழற்சிகளை தவிர்ப்பது அல்லது தொடர்ச்சியான எதிர்பார்ப்பு அறிக்கைகள். பின்வரும் உதாரணம் rlogin தானியக்க ஒரு துண்டு பகுதியாகும். Rlogin ஒரு கடவுச்சொல்லை கேட்கும் போது exp_continue இரண்டாவது எதிர்பார்க்கும் அறிக்கையை (மறுபடியும் மீண்டும் பார்க்க) எழுதாமல் தவிர்க்கிறது.

$ host_expert "(" sent_user ") \ n" send_user "\ n" $ expect_out (1, string) \ r "stty" அனுப்புக "கடவுச்சொல்லை: {stty -echo send_user" கடவுச்சொல்லை ($ பயனர்) echo exp_continue} தவறான {send_user "தவறான கடவுச்சொல் அல்லது கணக்கு \ n" exit} காலதாமதம் {send_user "$ host க்கு வெளியேயுள்ள நேரம் \ n" exit} eof {send_user \ "இணைப்பு புரவலன் தோல்வி: $ expected_out (buffer)" exit} - மீண்டும் $ prompt}

உதாரணமாக, பின்வரும் துண்டுப்பிரதி ஏற்கனவே பயனர் தானாகவே ஒருங்கிணைக்கப்பட்ட ஒரு தொடர்பு வழிகாட்டிக்கு உதவும். இந்த வழக்கில், முனையம் மூல முறையில் வைக்கப்படுகிறது. பயனர் "+" அழுத்தினால், ஒரு மாறி அதிகரிக்கப்படும். "பி" அழுத்தி இருந்தால், பல வருமானங்கள் செயல்முறைக்கு அனுப்பி வைக்கப்படும், சில வழியில் அதைத் தள்ளிவிடலாம், மேலும் "நான்" பயனீட்டாளர் செயல்பாட்டிற்கு உதவுகிறது, ஸ்கிரிப்ட்டிலிருந்து கட்டுப்பாட்டை திறம்பட திருடிவிடும். ஒவ்வொரு நிகழ்விலும், தற்போதைய செயலைச் செய்தபின், நடப்பு மாதிரி பொருத்தத்தை தொடர அனுமதிக்க, exp_continue அனுமதிக்கிறது.

stty raw -cheo expect_after {-i $ user_spawn_id "p" {send \ r \ r \ r "; exp_continue} "+" {incr foo; exp_continue} "i" {குறுக்கீடு; exp_continue} "வெளியேறு" வெளியேறும்}

முன்னிருப்பாக, exp_continue நேரம் முடிவடைகிறது டைமர். Exp_continue -continue_timer கொடிடன் அழைக்கப்பட்டால், டைமர் மறுதொடக்கம் செய்யப்படாது.

expect_after [expect_args]
எதிர்பார்ப்பு இருபக்கமும் எதிர்பார்க்கப்படுகிறது மற்றும் எதிர்பார்ப்பது இருவரும் பொருந்தக்கூடியது என்றால், எதிர்பார்ப்பு முறை பயன்படுத்தப்படுகிறது. கூடுதல் தகவலுக்கு, எதிர்பார்க்கும் எதிர்பார்ப்புகளைப் பார்க்கவும்.

expect_background [expect_args]
எதிர்பார்க்கும் அதே வாதங்களை எடுத்துக்கொள்கிறார், இருப்பினும் அது உடனடியாக திரும்பும். புதிய உள்ளீடு வரும் போதெல்லாம் வடிவங்கள் சோதிக்கப்படுகின்றன. முறை முடிவடையும் இயல்புநிலையுமே எதிர்பார்ப்புக்குரியதல்ல . இல்லையெனில், expect_background கட்டளை expected_before மற்றும் expected_after வடிவங்கள் எதிர்பார்ப்பது போல் பயன்படுத்துகிறது.

எதிர்பார்ப்பு_பார்க்கும் நடவடிக்கைகள் மதிப்பீடு செய்யப்படும்போது, ​​அதே ஸ்பான் ஐடிக்கு பின்னணி செயலாக்கம் தடுக்கப்பட்டது. செயல் முடிந்தவுடன் பின்னணி செயலாக்கம் தடுக்கப்பட்டது. பின்னணி செயலாக்கம் தடைசெய்யப்பட்டாலும், ஒரு ஸ்பான் ஐடியின் மீது முன்னோக்கி எதிர்பார்க்கலாம் .

எதிர்பார்ப்பு நிறைவேற்றப்படும்போது எதிர்பார்ப்பு நிறைவேற்ற முடியாது. ஒரு ஸ்பான் ஐடியுடன் ஒரு புதிய எதிர்பார்ப்பை அறிவிப்பதன் மூலம் குறிப்பிட்ட ஸ்பான் ஐடியின் எதிர்பார்ப்பை நீக்குகிறது. எந்த வடிவத்தையுடனும் எதிர்பார்ப்பில்லாமையாக்குவதை வெளிப்படுத்துதல் கொடுக்கப்பட்ட ஸ்பான் ஐடியை பின்னணியில் உள்ள வடிவங்களை பொருத்துவதற்கான திறமையிலிருந்து நீக்குகிறது.

எதிர்பார்ப்பது [expect_args]
எதிர்பார்க்கும் அதே வாதங்களை எடுத்துக்கொள்கிறார், இருப்பினும் அது உடனடியாக திரும்பும். அதே ஸ்பான் ஐடனுடன் மிக சமீபத்தில் எதிர்பார்க்கப்படும் வடிவ-செயல் ஜோடிகள், கீழ்க்கண்ட எதிர்பார்க்கும் கட்டளைகளுக்கு மறைமுகமாக சேர்க்கப்படுகின்றன. ஒரு முறை பொருந்தும் என்றால், அது எதிர்பார்ப்பு கட்டளையில் குறிப்பிடப்பட்டிருந்தால் அது கருதப்படுகிறது, அதனுடன் சம்பந்தப்பட்ட அமைப்பு எதிர்பார்ப்பு கட்டளையின் பின்னணியில் செயல்படுத்தப்படுகிறது. எதிர்பார்ப்பு மற்றும் எதிர்பார்ப்பு இருவரும் இருந்து வடிவங்கள் பொருத்த முடியும் என்றால், expected_before முறை பயன்படுத்தப்படுகிறது.

எந்த வடிவமும் குறிப்பிடப்படவில்லை என்றால், எந்த வடிவங்களுக்கும் ஸ்பான் ஐடி சோதிக்கப்படாது.

Ani கொடியால் மேலெழுதப்படாவிட்டால், pred_before கட்டளை execute செய்யப்பட்டது (அதன் முறை பொருந்தவில்லை போது) வரையறுக்கப்பட்ட ஸ்பான் ஐடிக்கு எதிரான வடிவங்கள் எதிர்பார்க்கப்படுகின்றன .

-info கொடியானது எதிர்பார்க்கும் என்ன வடிவங்களின் தற்போதைய குறிப்புகள் திரும்பப்பெற எதிர்பார்க்கிறது. முன்னிருப்பாக, தற்போதைய ஸ்பான் ஐடியைப் பற்றி இது தெரிவிக்கிறது. அந்த ஸ்பான் ஐடி பற்றிய தகவல்களுக்கு ஒரு விருப்ப ஸ்பான் அடையாள விவரக்குறிப்பு வழங்கப்படலாம். உதாரணத்திற்கு

expect_before -info -i $ proc

பெரும்பாலான ஒரு ஸ்பான் ஐடி விவரக்குறிப்பு வழங்கப்படலாம். கொடியானது, நேரடியாக மறைமுக குறிப்புகள் இருந்து வரும் நேரடி ஸ்பான்ஸ் ஐடிகளை மறைக்கிறது.

ஒரு ஸ்பான் ஐடி விவரக்குறிப்புக்குப் பதிலாக, "அனைத்து" கொடிகளும் "ஸ்போர்ட்ஸ் ஐடி" யை அறிக்கையிடுவதற்கு "-இன்" ஏற்படுத்தும்.

-info கொடி வெளியீடு எதிர்பார்க்கப்படுகிறது வாதம் என மீண்டும் பயன்படுத்தப்படுகிறது.

expect_tty [expect_args]
எதிர்பார்ப்பது போல் இருக்கிறது ஆனால் அது / dev / tty (அதாவது பயனர் இருந்து விசை அழுத்தங்கள்) இல் இருந்து எழுத்துக்களை வாசிக்கும். முன்னிருப்பாக, சமைக்கப்பட்ட முறையில் வாசித்தல் செய்யப்படுகிறது. இவ்வாறு, வரிகளை எதிர்பார்க்கும் பொருட்டு வரிசையில் திரும்ப வேண்டும். இது ஸ்டிட்டி வழியாக மாற்றப்படலாம் (கீழே உள்ள St கட்டளையைப் பார்க்கவும்).

expect_user [expect_args]
எதிர்பார்ப்பது போல் இருக்கிறது, ஆனால் அது ஸ்ட்டின் (அதாவது பயனர் இருந்து விசைகளை) இருந்து எழுத்துக்களை வாசிக்கிறது. முன்னிருப்பாக, சமைக்கப்பட்ட முறையில் வாசித்தல் செய்யப்படுகிறது. இவ்வாறு, வரிகளை எதிர்பார்க்கும் பொருட்டு வரிசையில் திரும்ப வேண்டும். இது ஸ்டிட்டி வழியாக மாற்றப்படலாம் (கீழே உள்ள St கட்டளையைப் பார்க்கவும்).

போர்க்
ஒரு புதிய செயல்முறையை உருவாக்குகிறது. புதிய செயல்முறை நடப்பு எதிர்பார்ப்பு செயல்முறையின் சரியான நகலாகும். வெற்றி, போர்க் புதிய (குழந்தை) செயல்முறை 0 திரும்பும் மற்றும் பெற்றோர் செயல்முறை செயல்முறை ஐடி கொடுக்கிறது. தோல்வி (வளங்கள் இல்லாமை காரணமாக, எ.கா., இடமாற்று இடம், நினைவகம்) காரணமாக, ஃபார்ஃப் செயல்முறைக்கு ஃபோர்க் -1 கொடுக்கிறது, குழந்தைப் பேராசிரியை உருவாக்கப்படவில்லை.

அசல் செயல்முறையைப் போலவே, வெளியேறும் கட்டளை வழியாக Forked செயல்முறைகள் வெளியேறுகின்றன. Forked செயல்முறைகள் பதிவு கோப்புகளை எழுத அனுமதிக்கப்படுகிறது. பெரும்பாலான செயல்முறைகளில் நீங்கள் பிழைத்திருத்த அல்லது முடக்கவில்லை என்றால், இதன் விளைவாக குழப்பம் ஏற்படலாம்.

சில சிறிய செயல்பாடுகளை பல வாசகர்கள் மற்றும் எழுத்தாளர்களால் கூட குழப்பமடையக்கூடும். இதனால், முளைப்புச் செயல்முறைகளுக்கு முன்னர் இது முரண்பாடாக உள்ளது.

தொடர்பு [string1 body1] ... [stringn [bodyn]]
நடப்பு செயல்முறையை பயனருக்கான கட்டுப்பாட்டிற்குள் கொண்டுவருகிறது, இதனால் விசை செயல்கள் தற்போதைய செயலுக்கு அனுப்பப்படுகின்றன, மற்றும் நடப்பு செயல்பாட்டின் stdout மற்றும் stderr வழங்கப்படுகின்றன.

சரம்-உடல் ஜோடிகளுக்கு வாதங்கள் என குறிப்பிடப்படலாம், இதில் தொடர்புடைய சரம் உள்ளிடப்பட்ட உடனேயே உடல் இயக்கப்படுகிறது. (முன்னிருப்பாக, தற்போதைய செயலுக்கு சரம் அனுப்பப்படாது.) இறுதி உடல் காணாமல் இருந்தால், மொழிபெயர்ப்பாளர் கட்டளை கருதப்படுகிறது.

முழு பரஸ்பர அறிக்கையுடனான வாதங்கள் ஒன்றுக்கு மேற்பட்ட வரி தேவைப்பட்டால், ஒவ்வொரு வரியும் முதுகெலும்பாக முடக்கப்படுவதை தவிர்ப்பதற்கு அனைத்து வாதங்களும் "பிரிந்து" இருக்கலாம். இந்த ஒரு வழக்கில், வழக்கமான TCL மாற்றீடுகள் ப்ரேஸ் போதிலும் ஏற்படும்.

உதாரணமாக, கீழ்கண்ட கட்டளையானது பின்வரும் சரம்-உடல் ஜோடிகளுடன் வரையறுக்கப்படுகிறது: ^ Z என்பது அழுத்தும் போது, எதிர்பார்ப்பு இடைநீக்கம் செய்யப்படுகிறது. ( -set flag முனைய முறைகள் மீளமைக்கப்படுகிறது.) ^ A ஐ அழுத்தும்போது, ​​பயனர் "நீங்கள் கட்டுப்பாட்டு-A ஐ தட்டச்சு செய்தால்" மற்றும் செயல்முறை A ^ ஐ அனுப்பப்படும். $ அழுத்தும் போது, ​​பயனர் தேதி காண்கிறார். ^ C அழுத்தும் போது, ​​வெளியேறும் எதிர்பார்ப்பு . "Foo" உள்ளிட்டால், பயனர் "bar" ஐ பார்க்கிறான். ~ ~ அழுத்தும் போது, எதிர்பார்ப்பு மொழிபெயர்ப்பாளர் இடைசெயலாக இயங்குகிறது.

CTRLZ \ 032 ஐ ஒருங்கிணைக்கவும் {-reset $ CTRLZ {exec kill-STOP [pid]} \ 001 {send_user "நீங்கள் கட்டுப்பாட்டு-ஒரு \ n" தட்டச்சு செய்தீர்கள்; அனுப்பவும் "\ 001"} $ {send_user "தேதி [கடிகார வடிவமைப்பு [கடிகார விநாடிகள்]]."} \ 003 exit foo {send_user "bar"} ~~}

சரம்-உடல் ஜோடிகளில், சரங்களை அவர்கள் பொருள்களாக பட்டியலிடப்பட்ட வரிசையில் பொருந்தும். பகுதி மீதமுள்ள சரங்களை மீதமுள்ள எதிர்பார்ப்புகளிலிருந்து தற்போதைய செயல்முறைக்கு அனுப்பப்படவில்லை. பாத்திரங்கள் பின்னர் ஒரு போட்டியாக இருக்கக்கூடாது எனில், சரத்தின் ஒரு பகுதி மட்டுமே மற்றொரு போட்டியை தொடங்கமுடியாத செயல்முறைக்கு அனுப்பப்படும். எனவே, போட்டியில் ஈடுபட முயற்சிக்கும் அசல் சரங்களை இறுதியில் தோல்வியுற்றால், பகுதி போட்டிகளின் substrings என்று சரங்களை பின்னர் பொருத்த முடியும்.

இயல்புநிலையாக, சரடு பொருத்தமற்றது எந்த வைர அட்டைகளாலும் சரியாக இருக்காது. (இதற்கு மாறாக, எதிர்பார்க்கும் கட்டளை இயல்புநிலையாக glob-style வடிவங்களைப் பயன்படுத்துகிறது.) -அடிப்படையான கொடியை பயன்படுத்துவதன் மூலம், கொடிகள் தொடர்பு கொள்ளும் வடிவங்களைப் பாதுகாக்க பயன்படும். "-" தொடங்கும் எந்த வடிவமும் இந்த வழியில் பாதுகாக்கப்பட வேண்டும். ("-" தொடங்கும் அனைத்து சரங்களும் எதிர்கால விருப்பங்களுக்கு ஒதுக்கப்பட்டுள்ளன.)

சரக்கை ஒரு regexp-style முறை என்று பொருள்படுத்த வேண்டும். இந்த நிலையில், பொருந்தும் துணை தளங்கள் மாறி interact_out இல் சேமிக்கப்படும், அதேபோல் மாறி expected_out மாறி அதன் வெளியீடு சேமிக்கப்படும் என்று எதிர்பார்க்கப்படுகிறது . -இந்தியக் கொடி இதேபோல் ஆதரிக்கப்படுகிறது.

முன்மாதிரியின் முடிவில் செயல்படுத்தப்படும் செயலை eof முறைமை அறிமுகப்படுத்துகிறது. வெளியீட்டை எழுதும் போது ஒரு eof கண்டுபிடிக்கப்பட்டால், அது பொருத்தமாக இருக்கும், ஒரு தனி eof முறை -அல்லது, இயல்புநிலை eof நடவடிக்கை "திரும்ப", அதனால் எந்த EOF மீது வெறுமனே கொடுக்கிறது.

முறை முடிவடையும் நேரம் (விநாடிகளில்) அறிமுகப்படுத்தப்படுகிறது மற்றும் எந்த நேரத்திலும் பாத்திரங்களைப் படிக்காத பிறகு செயல்படுத்தப்படும் செயலை அறிமுகப்படுத்துகிறது. காலவரிசை முறை சமீபத்தில் குறிப்பிட்ட செயல்முறைக்கு பொருந்தும். இயல்புநிலை நேரம் இல்லை. சிறப்பு மாறி "நேரம்" ( எதிர்பார்ப்பு கட்டளையால் பயன்படுத்தப்படும்) இந்த நேரத்திலேயே பாதிக்காது.

எடுத்துக்காட்டுக்கு, ஒரு மணிநேரத்திற்கு தட்டச்சு செய்யாத autologout பயனர்களுக்கு பின்வரும் அறிக்கை பயன்படுத்தப்படலாம், ஆனால் இன்னும் பல முறை கணினி செய்திகளைப் பெறலாம்:

interact -input $ user_spawn_id காலதாமதம் 3600 திரும்பப் பெறுதல் \ $ spawn_id

முறைமை முக்கிய பூஜ்யமாக இருந்தால் , மற்றும் nulls அனுமதிக்கப்படும் ( remove_nulls கட்டளை வழியாக), ஒரு ஒற்றை ASCII 0 பொருந்தும் என்றால் தொடர்புடைய உடல் செயல்படுத்தப்படுகிறது. Glob அல்லது regexp வடிவங்களின் வழியாக 0 bytes ஐ பொருத்த முடியாது.

கொடிடன் ஒரு மாதிரியை முன்னிலைப்படுத்துகிறது - மாதிரியை (அல்லது eof) பொருந்திய spawn_id க்கு மாறி மாறி interact_out (spawn_id) அமைக்கப்படுகிறது.

முறிவு மற்றும் தொடர்ச்சியான செயல்கள் கட்டுப்பாட்டு கட்டமைப்புகளை (அதாவது, proc க்கு ) வழக்கமாக நடந்து கொள்ளுதல் போன்ற செயல்கள். இருப்பினும், மீண்டும் அழைப்புகள் அதன் அழைப்பாளருக்குத் திரும்பவும் தொடர்புபடுகின்றன, அதே நேரத்தில் inter_return அதன் அழைப்பாளருக்கு மீண்டும் வருவதற்கு தொடர்பு கொள்கிறது. உதாரணமாக, "proc foo" என்று தொடர்பு கொண்டால் , பின்னர் inter_return செயற்படுத்தினால் , proc foo திரும்பும். (இதன் பொருள் அழைப்பிற்கான interpreter தட்டச்சு செய்தியை மீண்டும் தொடர்புபடுத்தினால், இடைச்செருகானது அதன் அழைப்பாளருக்கு மீண்டும் தொடர்புகொள்வதற்கு இடைச்செருகலை ஏற்படுத்தும்.)

நடப்பு போது, ​​மூல பயன்முறை பயன்படுத்தப்படுகிறது, இதனால் அனைத்து பாத்திரங்களும் தற்போதைய செயல்முறைக்கு அனுப்பப்படலாம். தற்போதைய செயல்முறை வேலை கட்டுப்பாடு சமிக்ஞைகள் பிடிக்கவில்லை என்றால், அது நிறுத்தப்பட சமிக்ஞையை அனுப்பினால் (இயல்புநிலை ^ Z) அனுப்பப்படும். அதை மறுதொடக்கம் செய்ய, தொடர்ந்து சமிக்ஞையை அனுப்பவும் ("கொலை-கான்" போன்றவை). நீங்கள் ஒரு SIGSTOP ஐ உண்மையில் ஒரு செயலை (Z மூலம்) அனுப்ப விரும்பினால், முதலில் சிஎன்எல் உருவாக்கப்பட்டு உங்கள் நிரலை இயக்கும். மறுபுறம், நீங்கள் ஒரு SIGSTOP ஐ எதிர்பார்க்க வேண்டுமெனில், முதல் அழைப்பு மொழிபெயர்ப்பாளர் (ஒருவேளை தப்பிக்கும் பாத்திரத்தை பயன்படுத்தி), பின்னர் Z அழுத்தவும்.

ஸ்ட்ரிங்-உடல் ஜோடிகளை இடைமுகப்பாளருக்குள் நுழையவும், கட்டளைகளை செயல்படுத்துவதற்கும் இடைப்பட்ட ஒரு சுருக்கெழுத்துக்காக பயன்படுத்தலாம். சரம்-உடல் ஜோடியின் உடலை செயல்படுத்தும்போது முந்தைய முனையப் பயன்முறை பயன்படுத்தப்படுகிறது.

வேகத்திற்காக, இயல்புநிலையில் மூல பயன்முறையில் செயல்படுகிறது. -செயல் கொடியானது முனையம் செயல்படுத்தப்படுவதற்கு முன்னர் முனையத்தில் முனையத்தை மீட்டமைக்கிறது (தவிர்க்க, சமைக்கப்பட்ட பயன்முறை). முறை சுவிட்ச் போது எழுத்துகள் உள்ளிட்டு இருக்கலாம் என்பதை நினைவில் கொள்ளவும் (சில கணினிகளில் முனைய இயக்கி ஒரு துரதிருஷ்டவசமான அம்சம்). சமைக்கப்பட்ட பயன்முறையில் இயங்குவதைப் பொறுத்து உங்கள் செயலை நீங்கள் பயன்படுத்தினால் மட்டுமே பயன்படுத்த முடியும் .

ஒவ்வொரு காட்சிக்கும் வாசித்த செயல்முறையை மீண்டும் உருவாக்கும் செயல்முறையின் பின்வருமாறு பொருந்தக் கூடிய எழுத்துக்களை -செலோ கொடி அனுப்புகிறது. பகுதியளவு தட்டச்சு முறைகளில் இருந்து பயனரைப் பார்க்க வேண்டும் போது இது பயனுள்ளதாக இருக்கும்.

ஒரு முறை எதிரொலித்தாலும், இறுதியில் பொருந்தவில்லை என்றால், எழுத்துக்கள் உருவான செயல்முறைக்கு அனுப்பப்படும். உருவான செயல்முறை அவற்றை எதிரொலிக்கும் போது, ​​பயனர் இரண்டு முறை கதாபாத்திரங்களைப் பார்ப்பார். முறைமை முடிக்க பயனில்லாத சூழ்நிலைகளில் -செக்கோ மட்டுமே பொருத்தமானது. உதாரணமாக, பின்வரும் பகுதி, rftp, recursive-ftp ஸ்கிரிப்டில் இருந்து வருகிறது, பயனர் ~ g, ~ p, அல்லது ~ l ஐ நுழைய வேண்டுமென்று கேட்கும், வைக்க, அல்லது நடப்பு கோப்பகத்தை மறுபரிசீலனை செய்ய வேண்டும். இவை சாதாரண FTP கட்டளைகளிலிருந்து தொலைவில் உள்ளன, பயனர் தவறுதலாக தவிர்த்து வேறு எந்த வகையிலும் தட்டச்சு செய்ய இயலாது, இந்த வழக்கில், எப்படியாவது விளைவை புறக்கணிப்பார்கள்.

தொடர்பு கொள்ளுங்கள் {-echo ~ g {getcurdirectory 1} -cheo ~ l {getcurdirectory 0} -echo ~ p {putcurdirectory}}

கதாபாத்திரங்கள் வாசிக்கப்படுவதால் வெளியீட்டுச் செயல்பாட்டிற்கு பின்வரும் பாணியுடன் பொருந்தக் கூடிய எழுத்துகள் - நொபெர்ட் கொடி.

ஒரு நிரல் மாதிரியை மீண்டும் எதிரொலிப்பதை நீங்கள் விரும்பும் போது இது பயனுள்ளதாக இருக்கும். உதாரணமாக, ஒரு நபரை டயல் செய்வது (ஹேய்ஸ்-பாணி மோடம்) எங்கு கண்காணிக்க பயன்படுகிறது. ஒவ்வொரு முறை "ATD" ஸ்கிரிப்ட் வரி மற்ற பதிவுகள் காணப்படுகிறது.

$ 1 interact_out (1, சரம்) "} interact -nobuffer" atd "lognumber

தொடர்பு கொள்ளும்போது , log_user முந்தைய பயன்பாடு புறக்கணிக்கப்படுகிறது. குறிப்பாக, தொடர்பு அதன் வெளியீடு உள்நுழைக்கப்பட வேண்டும் (தரநிலை வெளியீட்டிற்கு அனுப்பி வைக்கப்படும்), ஏனெனில் பயனர் கண்மூடித்தனமாக தொடர்பு கொள்ள விரும்பவில்லை என்று கருதப்படுகிறது.

தற்போதைய செயலின் வெளியீட்டிற்கு பயன்படுத்தக்கூடிய எந்தவொரு முக்கிய-உடல் ஜோடிகளையும் -ஓ- கொடி ஏற்படுத்துகிறது. உதாரணமாக, ஒரு டெல்நெட் அமர்வின் போது தேவையற்ற கதாபாத்திரங்களை அனுப்பும் புரவலர்களுடன் கையாளும் போது இது பயனுள்ளதாக இருக்கும்.

முன்னிருப்பாக, பயனர் செயல்திறன் செயல்திறன் ஸ்ட்டைன் எழுதுவதை ஸ்டாடினை எழுதுவதையும் பயனர் படிப்பதையும் எதிர்நோக்குகிறது. -u கொடி ("பயனர்" க்கான) பயனர் அதன் வாதம் மூலம் பெயரிடப்பட்ட செயல்முறையாக (இது ஒரு வெளிப்படையான ஐடி இருக்க வேண்டும்) தோற்றம் செய்கிறது.

வெளிப்படையான சுழற்சியைப் பயன்படுத்தாமலேயே இணைக்கப்படாத இரண்டு செயல்முறைகளை ஒன்றாக இணைக்க இது அனுமதிக்கிறது. பிழைதிருத்தம் செய்ய உதவுவதற்கு, கண்டறியும் முறை எப்போதும் stderr (அல்லது சில logging மற்றும் பிழைத்திருத்த தகவல்களுக்கு stdout) க்கு செல்கிறது. அதே காரணத்திற்காக, மொழிபெயர்ப்பாளர் கட்டளை stdin இலிருந்து interactively வாசிக்கும்.

உதாரணமாக, பின்வரும் பகுதி ஒரு உள்நுழைவு செயல்முறையை உருவாக்குகிறது. பின்னர் அது பயனரை (காட்டப்படவில்லை) டயல் செய்கிறது, இறுதியாக இவை இரண்டையும் இணைக்கிறது. நிச்சயமாக, எந்த செயல்முறை உள்நுழைவு பதிலாக. ஒரு ஷெல், உதாரணமாக, பயனர் ஒரு கணக்கு மற்றும் கடவுச்சொல்லை வழங்காமல் வேலை செய்ய அனுமதிக்கும்.

ஸ்பான் உள்நுழைவு அமைவு உள்நுழைவு $ spawn_id ஸ்பான் முனை மோடம் # பயனர் மீண்டும் வெளியேறவும் # தொடர்பு கொள்ள பயனர் இணைக்கவும் -u $ உள்நுழைவு

பல செயல்முறைகளுக்கு வெளியீட்டை அனுப்புவதற்கு, ஒவ்வொரு அலைவரிசை அடையாள பட்டியல் பட்டியலைப் பட்டியலிடுவதன் மூலம் ஒரு அவுட்லுக் கொடி. வெளியீடு ஸ்பான்டைன் ஐடிகளின் ஒரு குழுவிற்கான உள்ளீடு, ஒரு -அனுப்பு கொடி முன்னால் ஒரு ஸ்பான் ஐட் பட்டியலால் தீர்மானிக்கப்படலாம். (இரண்டு- உள்ளீடு மற்றும் -அனுபவம் எதிர்பார்ப்புக் கட்டத்தில் -i flag எனும் வடிவத்தில் அதே வடிவத்தில் பட்டியலை எடுக்கலாம், தவிர எந்தவொரு ஸ்பேஸ்_ஐஎன்என்வும் அர்த்தமுள்ளதாக இல்லை.) பின்வரும் அனைத்து கொடிகளும், சரங்களும் (அல்லது வடிவங்கள்) உள்ளீடு கொடி தோன்றுகிறது. எந்த- உள்ளீடு தோன்றியிருந்தாலும், -output "-input $ user_spawn_id -output" என்பதை குறிக்கிறது. (இதேபோல், உள்ளீடுகளை கொண்டிருக்காத வடிவங்களைக் கொண்டது .) ஒரு -பயன்பாடு குறிப்பிடப்பட்டால், அது $ user_spawn_id க்கு மேலாக மாறுகிறது. இரண்டாவது உள்ளீடு குறிப்பிடப்பட்டால், அது $ spawn_id ஐ மீறிவிடும். கூடுதல்- உள்ளீடு கொடிகள் குறிப்பிடப்படலாம்.

இரண்டு மறைமுக உள்ளீட்டு செயல்முறைகள் இயல்புநிலை வெளியீடுகளை $ spawn_id மற்றும் $ user_spawn_id (தலைகீழ்) இல் குறிப்பிடப்பட்டுள்ளது. No-output கொடியுடன் ஒரு -பயல் கொடி தோன்றினால், அந்த செயல்முறையில் உள்ள எழுத்துகள் நிராகரிக்கப்படும்.

வேறு எந்த- உள்ளீடு அல்லது -அல்லது கொடிகள் பயன்படுத்தப்படாவிட்டால், -i கொடி தற்போதைய spawn_id க்கு மாற்றாக அறிமுகப்படுத்துகிறது. A -i கொடி ஒரு -o கொடி குறிக்கிறது.

மறைமுக ஸ்பான் ஐடியைப் பயன்படுத்துவதன் மூலம் தொடர்புபட்ட செயல்முறைகளை மாற்றுவது சாத்தியமாகும். (மறைமுக ஸ்பான் ஐடிகள், எதிர்பார்ப்பு கட்டளையின் பிரிவில் விவரிக்கப்படுகின்றன.) மறைமுக ஸ்பான் ஐடிகள், -i, -u, -அனுமதி, அல்லது -அல்லது கொடிகள் மூலம் குறிப்பிடப்படலாம்.

மொழிபெயர்ப்பாளர் [வினவல்கள்]
பயனர் எதிர்விளைவு மற்றும் டி.clி் கட்டளைகளுக்கு தூண்டுதலாக செயல்படுவதை ஏற்படுத்துகிறது. ஒவ்வொரு கட்டளையின் விளைவு அச்சிடப்பட்டுள்ளது.

முறிவு மற்றும் தொடர்ச்சியான செயல்கள் கட்டுப்பாட்டு கட்டமைப்புகளை (அதாவது, proc க்கு ) வழக்கமாக நடந்து கொள்ளுதல் போன்ற செயல்கள். இருப்பினும், இடைத்தரகர் அதன் அழைப்பாளருக்குத் திரும்புவதை ஏற்படுத்துவார், அதே நேரத்தில் inter_return மொழிபெயர்ப்பாளர் அதன் அழைப்பாளருக்கு திரும்புவதற்கு ஏற்படுத்துவார். எடுத்துக்காட்டாக, "proc foo" interpreter என அழைக்கப்பட்டால், பின்னர் செயல் inter_return ஐ செயல்படுத்தினால், proc foo திரும்பும். வேறு எந்த கட்டளையும் புதிய கட்டளைகளுக்குத் தூண்டுவதற்கு தடையைத் தூண்டுகிறது.

முன்னிருப்பாக, வரியில் இரண்டு முழு எண் கொண்டிருக்கும். மதிப்பீடு ஸ்டாக் (அதாவது, எத்தனை முறை Tcl_Eval என்று அழைக்கப்படுகிறது) ஆழத்தின் விவரம் முதல் முழு விவரம். இரண்டாவது முழுமையானது TCL வரலாற்று அடையாளங்காட்டி ஆகும். "Prompt1" என்று அழைக்கப்படும் செயல்முறையை வரையறுப்பதன் மூலம் உடனடியாக அமைக்க முடியும், அதன் திரும்ப மதிப்பு அடுத்த கட்டளை ஆகும். ஒரு அறிக்கை திறந்த மேற்கோள் இருந்தால், அடைப்புக்குறிகள், ப்ரேஸ் அல்லது அடைப்புக்குறிகள், இரண்டாம்நிலை வரியில் (முன்னிருப்பாக "+>") புதிதாக வெளியிடப்படும். "Prompt2" என்று அழைக்கப்படும் ஒரு செயல்முறையை வரையறுப்பதன் மூலம் இரண்டாம் கட்டம் அமைக்கப்படலாம்.

மொழிபெயர்ப்பாளரின் போது, ​​சமைக்கப்பட்ட பயன்முறை பயன்படுத்தப்படுகிறது, அதன் அழைப்பாளர் மூல பயன்முறையைப் பயன்படுத்தினாலும் கூட.

Stdin மூடப்பட்டிருந்தால், இடையர் கொடி பயன்படுத்தப்படாவிட்டால், மொழிபெயர்ப்பாளர் மீண்டும் வருவார், எந்த சந்தர்ப்பத்தில் அடுத்த வாதத்தை பயன்படுத்தலாம்.

log_file [args] [[-a] கோப்பு]
ஒரு கோப்புப்பெயர் வழங்கப்பட்டால், log_file கோப்புறையில் அமர்வின் டிரான்ஸ்கிரிப்ட் (அந்த கட்டத்தில் தொடங்கி) பதிவு செய்யப்படும். log_file எந்தவொரு வாதமும் வழங்காவிட்டால் பதிவுகளை நிறுத்தாது. முந்தைய பதிவு கோப்பு மூடப்பட்டுள்ளது.

ஒரு கோப்புப்பெயரைப் பயன்படுத்துவதற்கு பதிலாக, TL கோப்பை அடையாளங்காட்டி -open அல்லது -leaveopen flags ஐ பயன்படுத்தி வழங்கலாம் . இது ஸ்பான் கட்டளைக்கு ஒத்திருக்கிறது. (மேலும் தகவலுக்கு ஸ்போனைப் பார்க்கவும்.)

Log_user கட்டளையால் ஒட்டப்பட்டிருக்கும் -ஒரு கொடி படை வெளியீடு.

முன்னிருப்பாக, log_file கட்டளையை பழைய கோப்புகளை நகலெடுக்காமல், அவற்றை தற்காலிகமாக நிறுத்துவதன் மூலம், ஒரு அமர்வில் பல முறை முடக்குவதற்கும் பல தடவைகளை இயக்கலாம். கோப்புகளை துண்டிக்க, -நெஞ்ச் கொடி பயன்படுத்தவும்.

-info கொடியானது log_file க்கு மிக சமீபத்தில் தகவல் இல்லாத விவாதங்களின் விளக்கத்தை மீண்டும் கொடுக்கிறது.

log_user -info | 0 | 1
முன்னிருப்பாக, உரையாடலை stdout (மற்றும் திறந்தால் ஒரு லாக்ஃபுல்) க்கு புகுபதிவு செய்யவும். "Log_user 0" கட்டளையால் "log_user 1" மூலம் redabled "stdout க்கான பதிவு" முடக்கப்பட்டுள்ளது. Logfile க்கு புகுபதிவு மாறாமல் உள்ளது.

-Info கொடி log_user கொடுக்கப்பட்ட மிக சமீபத்திய அல்லாத தகவல் வாதங்கள் ஒரு விளக்கம் திரும்ப ஏற்படுத்துகிறது.

match_max [-d] [-i spawn_id] [size]
எதிர்பார்ப்பதன் மூலம் உள்நாட்டில் பயன்படுத்தப்படும் பஃபர் அளவு (பைட்டுகளில்) வரையறுக்கிறது. எந்த அளவு வாதம் இல்லாமல், தற்போதைய அளவு திரும்பியது.

-d கொடி மூலம், முன்னிருப்பு அளவு அமைக்கப்படுகிறது. (தொடக்க இயல்புநிலை 2000 ஆகும்.) -i கொடியுடன், பெயரிடப்பட்ட ஸ்பான் ஐடிக்கு அளவு அமைக்கப்படுகிறது, இல்லையெனில் அது நடப்பு செயல்பாட்டிற்கு அமைக்கப்பட்டது.

மேலடுக்கு [- # spawn_id] [- # spawn_id] [...] நிரல் [args]
நடப்பு எதிர்பார்ப்பு நிகழ்ச்சியின் இடத்தில் "நிரல் விவாதிக்கிறது", இது முடிவடைகிறது. இது ஒரு உள்நுழைவு ஷெல் போலவே கட்டளை பெயரின் முன் ஒரு கண்ணுக்கு தெரியாத ஹைபன் வாதம் ஆகும். அனைத்து spawn_ids வாதங்கள் என பெயரிடப்பட்ட தவிர தவிர மூடப்படும். இவை பெயரிடப்பட்ட கோப்பு அடையாளங்காட்டிகள் மீது மேப் செய்யப்படுகின்றன.

Spawn_ids புதிய திட்டத்திற்கு மரபுவழி அடையாளங்களுக்கான கோப்பு அடையாளங்காட்டிகளாக மாற்றியமைக்கப்பட்டுள்ளது. உதாரணமாக, பின்வரும் வரி சதுரங்கத்தில் இயங்குகிறது மற்றும் நடப்பு செயல்முறையால் கட்டுப்படுத்த அனுமதிக்கிறது - ஒரு செஸ் மாஸ்டர் என்று.

overlay -0 $ spawn_id -1 $ spawn_id -2 $ spawn_id சதுரங்கம்

இது "interact -u" ஐ விட செயல்திறன் மிக்கதாக உள்ளது, இருப்பினும், திட்டமிடப்பட்ட ஒருங்கிணைப்பு செயல்திறனை அதிகரிக்கிறது என்பதால், இது எதிர்பார்த்த செயல்முறை இல்லை.

எந்த கட்டுப்பாட்டு முனையமும் வழங்கப்படவில்லை என்பதை நினைவில் கொள்க. எனவே, நீங்கள் துண்டிக்கப்பட்ட அல்லது தரமான உள்ளீடு, வேலை கட்டுப்பாடு (குண்டுகள், உள்நுழைவு, போன்றவை) என்று ஒழுங்காக செயல்படாத திட்டங்களை மாற்றியமைத்தால்.

சமநிலை [-d] [-i spawn_id] [மதிப்பு]
பரிணாம வளர்ச்சியின் வெளியீட்டில் இருந்து சமநிலையை தக்கவைக்கவோ அல்லது நீக்கவோ வேண்டுமா என வரையறுக்கிறது. மதிப்பு பூஜ்யமாக இருந்தால், ஒற்றுமை அகற்றப்படும், இல்லையெனில் அது அகற்றப்படவில்லை. மதிப்பு மதிப்பு இல்லாமல், தற்போதைய மதிப்பு திரும்பப்பெறுகிறது.

-d கொடி மூலம், இயல்புநிலை சமநிலை மதிப்பு அமைக்கப்படுகிறது. (துவக்க இயல்புநிலை 1, அதாவது, ஒற்றுமை அகற்றப்படவில்லை.) -i கொடியுடன், பெயரிடப்பட்ட ஸ்பான் ஐடிக்கு சமன்பாட்டு மதிப்பீடு அமைக்கப்பட்டது, இல்லையெனில் அது நடப்பு செயல்பாட்டிற்கு அமைக்கப்பட்டது.

remove_nulls [-d] [-i spawn_id] [மதிப்பு]
மாதிரி பொருத்துதல் அல்லது சேமிப்பதில் மாறிவரும் expected_out அல்லது interact_out இல் சேமிப்பதற்கு முன்பே முடக்கப்பட்ட செயல்முறைகளின் வெளியீட்டில் இருந்து பூஜ்யங்கள் நீக்கப்பட்டிருக்கின்றன அல்லது அகற்றப்படுகின்றனவா என்பதை வரையறுக்கிறது. மதிப்பு 1 என்றால், null கள் அகற்றப்படுகின்றன. மதிப்பு 0 என்றால், பூஜ்யங்கள் அகற்றப்படவில்லை. மதிப்பு மதிப்பு இல்லாமல், தற்போதைய மதிப்பு திரும்பப்பெறுகிறது.

-d கொடி மூலம், முன்னிருப்பு மதிப்பு அமைக்கப்பட்டது. (ஆரம்ப இயல்பானது 1 ஆகும், அதாவது, nulls அகற்றப்படும்.) -i கொடிடன், பெயர் ஸ்பான் ஐடிக்கு மதிப்பு அமைக்கப்படுகிறது, இல்லையெனில் அது நடப்பு செயல்பாட்டிற்கு அமைக்கப்பட்டது.

பூஜ்யங்கள் நீக்கப்பட்டிருந்தாலும் சரி, பூஜ்யம் பைட்டுகள் பதிவு மற்றும் ஸ்ட்டைட் ஆகியவற்றை பதிவு செய்யும்.

[-ஃபைலாக்ஸ்] சரத்தை அனுப்பு
தற்போதைய செயலுக்கு சரத்தை அனுப்புகிறது. உதாரணமாக, கட்டளை

"ஹலோ உலக \ r" ஐ அனுப்பு

நடப்பு செயல்முறைக்கு எழுத்துக்கள், helloworld அனுப்புகிறது. (டி.clியில் ஒரு printf -like கட்டளை ( வடிவம் என்று அழைக்கப்படுகிறது) இது தன்னிச்சையாக சிக்கலான சரங்களை உருவாக்க முடியும்.)

பாத்திரங்கள் உடனடியாக அனுப்பப்படுகின்றன, எனினும் வரிக்குட்பட்ட உள்ளீடு கொண்ட நிரல்கள் மீண்டும் பாத்திரத்தை அனுப்பும் வரை கதாபாத்திரங்களை வாசிக்காது. திரும்பத்திரும்ப "\ r" எனக் குறிக்கப்படுகிறது.

- கொடி அடுத்த வாதம் ஒரு கொடி விட ஒரு சரம் என விளக்கம் வேண்டும். எந்த சரமும் "-" உண்மையில் ஒரு கொடியை போல தோன்றும் இல்லையா. இந்த தற்செயலாக கொடிகள் போல் அந்த மூலம் சதி இல்லாமல் மாறி சரங்களை குறிப்பிட ஒரு நம்பகமான வழிமுறை வழங்குகிறது. ("-" தொடங்கும் அனைத்து சரங்களும் எதிர்கால விருப்பங்களுக்கு ஒதுக்கப்பட்டுள்ளன.)

பெயரிடப்பட்ட spawn_id க்கு சரம் அனுப்பப்பட வேண்டும் என்று -ஐ கொடி அறிவிக்கிறது. Spawn_id user_spawn_id என்றால், முனையம் மூல முறையில் உள்ளது, சரத்தின் புதிய வரிகளை மீண்டும்-புதிய வரிசை காட்சிகளை மொழிபெயர்த்துள்ளன, இதன்மூலம் முனையத்தில் சமைக்கப்பட்ட முறைமையில் அவை தோன்றும். -raw flag இந்த மொழிபெயர்ப்பை முடக்குகிறது.

-நல்ல கொடியானது பூஜ்ய எழுத்துக்களை (0 பைட்டுகள்) அனுப்புகிறது. முன்னிருப்பாக, ஒரு பூஜ்ய அனுப்பப்படுகிறது. ஒரு முழு எண் - null ஐ அனுப்ப எவ்வளவு nulls அனுப்ப.

பிரேக் கொடி ஒரு முறிவு நிலையில் உருவாக்குகிறது. ஸ்பான் ஐடி "spawn -open" வழியாக திறந்த ஒரு tty சாதனம் குறிக்கிறது என்றால் இது மட்டுமே அர்த்தம். நீங்கள் முனை போன்ற ஒரு செயல்முறையை உருவாக்கியிருந்தால், இடைவெளியை உருவாக்குவதற்கு முனையத்தின் மாநாட்டை நீங்கள் பயன்படுத்த வேண்டும்.

"மெதுவாக" அனுப்பப்படும் கொடிகளின் படைகள், இதனால் ஒரு கணினியை வடிவமைக்கும் ஒரு உள்ளீடு தாங்கியை வெளியேற்றும் பொதுவான சூழ்நிலையை தவிர்க்கவும். இந்த வெளியீடு மாறி "send_slow" இன் மதிப்பு மூலம் கட்டுப்படுத்தப்படுகிறது, இது இரண்டு உறுப்பு பட்டியலைக் கொண்டுள்ளது. முதல் உறுப்பு என்பது ஒரு முழு எண் ஆகும். இரண்டாவது உறுப்பு அணு எண் அனுப்பும் விநாடிகளின் எண்ணிக்கையை விவரிக்கும் ஒரு உண்மையான எண் ஆகும். எடுத்துக்காட்டுக்கு, "10,001" என்ற அமைப்பை அமைக்கவும் "10 -001 செட்" அனுப்பவும் ஒவ்வொரு 10 எழுத்துக்குறிகளுக்கும் இடையில் 1 மில்லி வினாடிக்கு சரங்களை அனுப்புமாறு அனுப்பும்.

ஒரு மனிதர் உண்மையில் தட்டச்சு செய்வதைப் போன்ற -H கொடி படைகளின் வெளியீடு அனுப்பப்படுவது (ஓரளவு). கதாபாத்திரங்களுக்கு இடையில் மனித போன்ற தாமதங்கள் தோன்றும். (இந்த வழிமுறை வெயிபுல் பகிர்வை அடிப்படையாகக் கொண்டது, இந்த குறிப்பிட்ட பயன்பாட்டிற்கு பொருந்தக்கூடிய மாற்றங்களுடன்). இந்த வெளியீடு மாறி "send_human" என்ற மாதிரியின் மதிப்பால் கட்டுப்படுத்தப்படுகிறது, இது ஒரு ஐந்து உறுப்பு பட்டியலை எடுக்கிறது. முதல் இரண்டு கூறுகள் நொடிகளில் எழுத்துகளின் சராசரியான இடைவேளை நேரமாகும். முதலில் முன்னிருப்பாக பயன்படுத்தப்படுகிறது. இரண்டாவதாக வார்த்தை முடிவுகளில் பயன்படுத்தப்படுகிறது, அத்தகைய மாற்றங்களில் அவ்வப்போது ஏற்படும் நுண்ணிய இடைநிறுத்தங்களை உருவகப்படுத்துவதற்காக. மூன்றாவது அளவுரு மாறுபாட்டின் அளவாகும். 1 மிகவும் மாறுபடும், 1 நியாயமான மாறி, மற்றும் 10 மிகவும் மாறக்கூடியது. உச்சங்கள் முடிவிலா 0 உள்ளன. கடந்த இரண்டு அளவுருக்கள் முறையே குறைந்தபட்ச மற்றும் அதிகபட்ச இடைவேளை நேரமாகும். குறைந்தபட்சம் மற்றும் அதிகபட்சம் கடைசியாக பயன்படுத்தப்படும் மற்றும் "கிளிப்" இறுதி நேரம். குறைந்தபட்ச மற்றும் அதிகபட்ச கிளிப் போதுமான மதிப்புகள் இருந்தால், சராசரியான சராசரி சராசரியிலிருந்து வேறுபட்டதாக இருக்கும்.

உதாரணமாக, கீழ்காணும் கட்டளை ஒரு வேகமான மற்றும் நிலையான தட்டச்சுமுறையை மாற்றியமைக்கிறது:

அனுப்ப send_human {.1 .0 1 .05 2} send -h "நான் பசியாக இருக்கிறேன், மதிய உணவு செய்வோம்."

பின்வருவது hangover க்கு பிறகு பொருத்தமானதாக இருக்கலாம்:

அனுப்ப send_human {.4 .4 .2 .5 100} send -h "Goodd party party lash night!"

பிழைகள் சிமுலேட்டாக இல்லை என்பதை நினைவில் கொள்ளவும், இருப்பினும் நீங்கள் பிழை திருத்தம் அமைத்துக் கொள்ளலாம்.

முடக்குகளை அனுப்புவதற்கு பூஜ்ய எழுத்துக்களை அனுப்புவதற்கான கொடிகள், மெதுவான வெளியீட்டை கட்டாயப்படுத்தி, மனித-பாணி வெளியீட்டிற்காக பரஸ்பரம் பிரத்தியேகமானவை. கடைசி குறிப்பிட்ட ஒரு மட்டுமே பயன்படுத்தப்படும். மேலும், வெற்று எழுத்துகள் அல்லது இடைவெளிகளை அனுப்புவதற்கான கொடிகளுடன் எந்த சரம் வாதத்தையும் குறிப்பிட முடியாது.

ஒரு எதிர்பார்ப்பு மூலம் ஒரு செயல்முறைக்கு முதலில் அனுப்புவதற்கு ஒரு நல்ல யோசனை இது. செயல்முறை தொடங்குவதற்கு காத்திருக்க வேண்டும், அனுப்புக முடியாது. குறிப்பாக, செயல்முறை இயங்குவதற்கு முன்னர் முதலில் அனுப்பப்பட்டால் , உங்கள் தரவு புறக்கணிக்கப்படும் அபாயத்தை நீங்கள் இயக்கலாம். ஊடாடும் திட்டங்கள் எந்த ஆரம்ப கட்டளையையும் வழங்காத சூழல்களில், நீங்கள் இதில் தாமதமாக அனுப்பலாம் :

# எப்படி உடைக்க வேண்டுமென்று ஹேக்கர்கள் குறிப்பை வழங்குவதை தவிர்க்க, # இந்த அமைப்பு ஒரு வெளிப்புற கடவுச்சொல்லை கேட்காது. # Span telnet முடிக்க 5 வினாடிகளுக்கு காத்திருங்கள் very.secure.gov தூக்கம் 5 கடவுச்சொல்லை அனுப்ப \ r

exp_send அனுப்ப ஒரு மாற்று . நீங்கள் Expectk அல்லது TK சூழலில் எதிர்பார்ப்பது வேறு வேறு வகைகளைப் பயன்படுத்துகிறீர்களானால், முழுமையான நோக்கத்திற்காக Tk ஆல் அனுப்பப்படும் . exp_send சூழல்களுக்கு இடையில் இணக்கத்திற்காக வழங்கப்படுகிறது. இதேபோன்ற பெயர்கள் பிற எதிர்பார்ப்புக்கு பிற அனுப்பும் கட்டளைகளுக்கு வழங்கப்படுகின்றன.

send_error [-flags] சரம்
தற்போதைய செயல்முறையை விட வெளியீடு stderr க்கு அனுப்பப்படுவதைத் தவிர, அனுப்புவதைப் போன்றது.

send_log [-] சரம்
சரத்தை பதிவு கோப்பிற்கு மட்டுமே அனுப்புகிறது ( log_file ஐ பார்க்கவும்) தவிர, அனுப்புதல் போன்றது. பதிவு கோப்பு திறந்தால் வாதங்கள் புறக்கணிக்கப்படும்.

send_tty [-flags] சரம்
தற்போதைய செயல்முறையை விட வெளியீடு அனுப்பப்படுவது தவிர / dev / tty க்கு அனுப்புகிறது.

send_user [-flags] சரம்
தற்போதைய செயல்முறையை விட வெளியீடு stdout க்கு அனுப்பி வைக்கப்படுவதை தவிர்த்து அனுப்புகிறது.

தூக்க விநாடிகள்
ஸ்கிரிப்டை குறிப்பிட்ட சில விநாடிகளுக்கு தூக்கத்தை ஏற்படுத்துகிறது. விநாடிகள் தசம எண்ணாக இருக்கலாம். தூக்கங்களை எதிர்பார்க்கும் போது குறுக்கீடுகள் (நீங்கள் Expectk ஐ பயன்படுத்துகிறீர்கள் என்றால் TK நிகழ்வுகள்) செயலாக்கப்படும்.

ஸ்பான்ஸ் [ஆர்ஆர்ஸ்] நிரல் [ஆர்ஆர்ஸ்]
"நிரல் விவாதங்கள்" இயங்கும் புதிய செயல்முறை உருவாக்குகிறது. அதன் stdin, stdout மற்றும் stderr எதிர்பார்க்கலாம் இணைக்கப்பட்டுள்ளது, அதனால் அவர்கள் மற்ற மற்றும் எதிர்பார்க்கும் கட்டளைகளை படித்து எழுத வேண்டும். இணைப்பு நெருங்கியது அல்லது செயல்முறை தானாகவே கோப்பு அடையாளங்காட்டிகளை மூடிவிட்டால்.

ஸ்பான்ஸால் ஒரு செயல்முறை ஆரம்பிக்கப்பட்டால், மாறி spawn_id அந்த செயல்முறையை குறிக்கும் ஒரு டிஸ்கிரிப்டர் அமைக்கப்படுகிறது. Spawn_id விவரித்துள்ள செயல்முறை " தற்போதைய செயல்முறை " என்று கருதப்படுகிறது. spawn_id படித்து அல்லது எழுதப்படலாம், இதன் விளைவாக வேலை கட்டுப்பாட்டை வழங்கும்.

user_spawn_id என்பது ஒரு உலகளாவிய மாறி உள்ளது, இது பயனர் குறிப்பிடும் டிஸ்கிரிப்டர் கொண்டிருக்கும். உதாரணமாக, இந்த மதிப்புக்கு spawn_id அமைக்கப்பட்டால், expect_user போன்ற செயல்பாடுகளை எதிர்பார்க்கலாம் .

நான் பிழை_spawn_id என்பது ஒரு உலகளாவிய மாறியாகும், இது நிலையான பிழை என்பதை குறிக்கிறது. உதாரணமாக, இந்த மதிப்புக்கு spawn_id அமைக்கப்பட்டால் send_error போன்ற செயல்பாடுகளை அனுப்புங்கள் .

tty_spawn_id என்பது / dev / tty ஐ குறிப்பிடும் டிஸ்கிரிப்டர் கொண்ட உலகளாவிய மாறி. / Dev / tty இல்லை என்றால் (ஒரு கிரான், அல்லது, அல்லது ஸ்க் ஸ்கிரிப்ட் போன்றவை), பின்னர் tty_spawn_id வரையறுக்கப்படவில்லை. இது பரிசோதிக்கப்படலாம்:

{{info vars tty_spawn_id]} {# / dev / tty exists} வேறு {# / dev / tty # அநேகமாக கிரான், தொகுப்பு அல்லது ஸ்கிரிப்ட் இல் இல்லை)

ஸ்பொன் யுனிக்ஸ் செயல் ஐடியை மீண்டும் கொடுக்கிறது. எந்தவொரு செயல்முறையும் உருவாக்கப்படவில்லை என்றால், 0 திரும்பியுள்ளது. மாறி spawn_out (அடிமை, பெயர்) pty அடி சாதனத்தின் பெயர் அமைக்கப்படுகிறது.

இயல்பாக, ஸ்பான் கட்டளை பெயர் மற்றும் வாதங்கள் எதிரொலிக்கிறது. நொச்சோ கொடி இதை செய்வதிலிருந்து ஸ்பான்னை நிறுத்திவிடுகிறது.

கன்சோல் கொடி கன்சோல் வெளியீட்டை வெளிப்படுத்திய செயல்முறைக்கு திருப்பி விடப்படுவதற்கு காரணமாகிறது. இது எல்லா கணினிகளிலும் ஆதரிக்கப்படவில்லை.

உள்நாட்டில், spawn ஒரு pty பயன்படுத்துகிறது, பயனர் tty அதே வழியில் துவக்க. இது மேலும் துவக்கப்படுவதால், எல்லா அமைப்புகளும் "புத்திசாலி" (stty (1) படி) ஆகும். மாறி stty_init வரையறுக்கப்படுகிறது என்றால், அது மேலும் கட்டமைப்பு என stty arguments பாணியில் விளக்கம். எடுத்துக்காட்டுக்கு, "செட் ஸ்டிடின்-அன்ட் மூல" என்பது முனையத்தில் செயல்முறை முனையங்கள் முனையத்தில் துவங்கும். பயனரின் tty அடிப்படையிலான துவக்கத்தைத் தவிர்க்கிறது . -நாட்டின் "விவேகம்" துவக்கத்தை தவிர்க்கிறது .

பொதுவாக, ஸ்பேன் இயக்க சிறிது நேரம் ஆகும். ஒரு குறிப்பிடத்தக்க அளவை எடுத்துக் கொள்வதை நீங்கள் கவனிக்கிறீர்கள் என்றால், அது வெட்டப்பட்டிருக்கும் ptys ஐ சந்திக்க நேரிடும். தவறான செயல்முறைகளுடன் உள்ள சிக்கல்களைத் தவிர்க்க ptys இல் பல சோதனைகள் இயக்கப்படுகின்றன. (இது wedged pty க்கு 10 விநாடிகள் எடுத்துக்கொள்ளும்.) ஒற்றை மாநிலங்களில் பல ptys ஐ எதிர்பார்ப்பது என்றால் -d விருப்பத்துடன் எதிர்பார்ப்பதை இயக்குகிறது. இந்த ptys இணைக்கப்பட்ட செயல்முறைகளை நீங்கள் அழிக்க முடியாவிட்டால், உங்களுடைய ஒரே சேவையை மீண்டும் துவக்கலாம்.

நிரல் வெற்றிகரமாக உருவாக்கப்படாவிட்டால் (2) நிரல் தோல்வியுற்றால் (எ.கா. நிரல் இல்லை), ஒரு பிழை செய்தியானது அடுத்த இடைமுகத்தால் திரும்பப்பெறுகிறது அல்லது நிரலை இயக்கினால் கட்டளையை எதிர்பார்க்கிறது மற்றும் வெளியீடு என பிழை செய்தியை உற்பத்தி செய்கிறது. இந்த நடத்தை ஸ்பான்னை நடைமுறைப்படுத்துவதற்கான ஒரு இயற்கை விளைவு ஆகும். உள்நாட்டில், spawn_id வழியாக தகவல்தொடர்பு தவிர, அசல் எதிர்பார் செயல்முறையுடன் தொடர்புகொள்வதற்கு வழிவகுக்காத செயல்முறைக்கு பிறகு,

-பொது கொடியானது அடுத்த விவாதத்தை TCL கோப்பு அடையாளங்காட்டி (அதாவது, திறந்தால் திரும்பப் பெறுகிறது) என வரையறுக்கப்படுகிறது. ஸ்பான் ஐடி பின்னர் அது வெளிப்படையான செயல்முறையாகப் பயன்படுத்தப்படலாம் . (கோப்பு அடையாளங்காட்டி பயன்படுத்தப்படக்கூடாது.) இது மூல சாதனங்கள், கோப்புகள், குழாய்த்திட்டங்கள் ஆகியவற்றை ஒரு pty ஐப் பயன்படுத்துவதன் மூலமே செயல்முறைகளை உருவாக்குகிறது. தொடர்புடைய செயல்முறை இல்லை என்பதைக் குறிப்பிடுவதற்கு 0 திரும்பியது. உருவான செயல்முறை தொடர்பான இணைப்பு மூடப்பட்டவுடன், Tcl கோப்பு அடையாளங்காட்டி ஆகும். -அலுவலகம் கொடி போலவே -அல்லது புரோட்டான் ஐடன் மூடப்பட்ட பின்னரும் கோப்பு அடையாளத்தை திறந்து விடலாம் .

காலியிடம் கொடியானது திறக்கப்பட வேண்டும், ஆனால் செயல்முறை ஏதும் இல்லை. தொடர்புடைய செயல்முறை இல்லை என்பதைக் குறிப்பிடுவதற்கு 0 திரும்பியது. Spawn_id வழக்கம் போல் அமைக்கப்பட்டது.

மாறி spawn_out (அடிமை, fd) pty அடிமைக்கு தொடர்புடைய கோப்பு அடையாளங்காட்டிக்கு அமைக்கப்படுகிறது. "மூடுபனி" பயன்படுத்தி அதை மூடிவிடலாம்.

இந்த குறியீட்டு கொடி சிதைந்த செயல்முறையில் புறக்கணிக்கப்பட வேண்டும். இல்லையெனில், சமிக்ஞைகள் இயல்புநிலை நடத்தை பெறும். ஒவ்வொரு சமிக்ஞையையும் ஒரு தனி கொடியைத் தவிர்த்து, சிக்னல்கள் பொறி கட்டளையிலேயே பெயரிடப்படுகின்றன.

ஸ்ட்ராஸ் நிலை
செயல்படுத்தப்படுவதற்கு முன்னர் பின்வரும் அறிக்கைகள் அச்சிடப்படும். (டி.clின் டிரேஸ் கட்டளை மாறிகள் தடங்கல்கள்.) நிலை என்பது, தொலைத் தொடர்புக் கம்பத்தில் எவ்வளவு தொலைவில் உள்ளது என்பதைக் குறிக்கிறது. உதாரணமாக, பின்வரும் கட்டளைகளை முதல் 4 நிலைகளை கண்டுபிடிக்கும் போது எதிர்பார் இயங்குகிறது, ஆனால் அதற்குக் கீழே எதுவும் இல்லை.

எதிர்பார்க்கும் -c "strace 4" script.exp

இன்போ கொடியானது அண்மையில் உள்ள தகவல் அல்லாத விவாதங்களின் விளக்கத்தை மறுபரிசீலனை செய்யும்.

ஸ்டிடி ஆர்கிஸ்
வெளிப்புற கட்டளை கட்டளைக்கு இதே போன்ற முனைய முறைகள் மாற்றும்.

முன்னிருப்பாக, கட்டுப்பாட்டு முனையம் அணுகப்படுகிறது. மற்ற டெர்மினல்கள் "கட்டளைகளின் விளைவாக அதை நிலைநிறுத்துவதன் மூலம் அணுகலாம். எந்த நிலையையும் கோர முடியாது மற்றும் கட்டுப்பாட்டு முனையம் அணுகப்பட்டால், மூல மற்றும் எதிரொலி பண்புக்கூறுகளின் முந்தைய நிலை பின்வருமாறு இருக்கலாம், கட்டளையால் பயன்படுத்தப்படுகிறது.

உதாரணமாக, மூல அல்லது -கூக்டாக இருக்கும் வாதங்கள் முனையத்தில் மூல பயன்முறையில் வைக்கின்றன . விவாதங்கள் -வா அல்லது சமைத்த முனையுடன் சமைக்கப்பட்ட முறையில் வைக்கவும். வாதங்கள் echo மற்றும் -oo ஆகியவை முனையத்தில் echo மற்றும் noecho முறையை முறையே.

தற்காலிகமாக எதிரொலிப்பதை எவ்வாறு தடுக்கிறது என்பதை பின்வரும் உதாரணம் விளக்குகிறது. இது கடவுச்சொற்களை உட்பொதித்தல் தவிர்க்க மற்றபடி-தானியங்கி ஸ்கிரிப்டுகளில் பயன்படுத்தலாம். (கீழே கூடுதல் விவாதங்களைக் கீழே காண்க.)

stty -echo send_user "கடவுச்சொல்:" expect_user -re "(. *) \ n" கடவுச்சொல்லை $ expected_out (1, string) stty echo

கணினி விவாதம்
ஷா (1), முனையிலிருந்து ஒரு கட்டளையாக தட்டச்சு செய்யப்பட்டிருந்தால், உள்ளீடு என விவாதிக்கிறார். ஷெல் முடிவடைகிறது வரை காத்திருக்க எதிர்பார்க்கலாம் . ஷி இருந்து திரும்ப நிலை கையாளும் அதன் வழி மீண்டும் கையாளும் அதே வழியில் கையாளப்படுகிறது.

செயல்திறன் ஸ்ட்டின் மற்றும் ஸ்க்வாட்டுக்கு ஸ்கிரிப்ட் வழிமாற்றுக்கு மாறுபடும், மாறாக முறைமை திசை திருப்புதல் (வேறுவழியில் சரம் தன்னை குறிக்கும் விட) செய்கிறது. எனவே, நேரடியாக / dev / tty உடன் பேச வேண்டிய நிரல்களைப் பயன்படுத்த முடியும். அதே காரணத்திற்காக, கணினி முடிவுகளின் பதிவு பதிவு செய்யப்படவில்லை.

நேர முத்திரை [வாதம்]
ஒரு நேர முத்திரையை கொடுக்கிறது. எந்த விவாதமும் இல்லாமல், சகாப்தத்திலிருந்து வினாடிகளின் எண்ணிக்கை திரும்பியது.

வடிவம்-வடிவம் கொடி திரும்பிய ஒரு சரத்தை அறிமுகப்படுத்துகிறது, ஆனால் போஸ்டிஸ் விதிகளுக்கு ஏற்ப மாற்றீடுகளுடன் strftime க்கு வழங்கப்படுகிறது. உதாரணமாக ஒரு% சுருக்கமான வார நாள் பெயர் (அதாவது, சனி) மாற்றப்படும். மற்றவை:

% சுருக்கமாக வார வாரியாக%% முழு வாரநாள் பெயர்% b சுருக்க மாத பெயர்% B முழு மாத பெயர்% c தேதி தேதி: அக் Oct 6 11:45:56 1993% d நாள் (01-31% H மணி (00-23)% I மணி (01-12)% j நாள் (001-366)% m மாதம் (01-12)% M நிமிடம் (00-59)% ப. அல்லது மணிநேரம்% S வினாடி (00-61) % u நாள் (1-7, திங்கள் வாரத்தின் முதல் நாள்)% U வாரம் (00-53, முதல் ஞாயிற்றுக்கிழமை வாரம் முதல் நாள்)% V வாரம் (01-53, ISO 8601 பாணி)% w நாள் (0- 6)% W வாரம் (00-53, முதல் திங்கள் முதல் வாரம் ஒரு நாள்)% x தேதி-நேரத்தோடு: அக்டோபர் 6 1993 1993 இல் எக்ஸ் நேரம்: 23:59:59% y ஆண்டு (00-99) % Y ஆண்டு: 1993% Z நேர மண்டலம் (அல்லது ஒன்றுமில்லை தீர்மானிக்க முடியாதது) %% ஒரு வெற்று சதவீதம் அடையாளம்

மற்ற% குறிப்புகள் வரையறுக்கப்படவில்லை. மற்ற கதாபாத்திரங்கள் தொடர்ந்தும் கடக்கப்படாது. சி மொழி மட்டுமே ஆதரிக்கப்படுகிறது.

சகாப்தம் கொடி எடுக்கப்பட்டதிலிருந்து பல விநாடிகளை அறிமுகப்படுத்துகிறது, இது ஒரு மூலமாக வடிவமைக்கப்பட வேண்டும். இல்லையெனில், தற்போதைய நேரம் பயன்படுத்தப்படுகிறது.

GMT டைம்ஸோனைப் பயன்படுத்துவதற்கு GMAT கொடி நேர டைம்ஸ்டாம்ப் வெளியீடு. எந்த கொடிமில்லாமல், உள்ளூர் நேர மண்டலம் பயன்படுத்தப்படுகிறது.

பொறி [[கட்டளை] சமிக்ஞைகள்]
கொடுக்கப்பட்ட கட்டளை எந்த எதிர்கால ரசீதுகள் மீது நிறைவேற்றப்பட வேண்டும். கட்டளை உலகளாவிய நோக்கில் செயல்படுத்தப்படுகிறது. கட்டளை இல்லாவிட்டால், சிக்னல் நடவடிக்கை திரும்பியுள்ளது. கட்டளை SIG_IGN என்ற கட்டளையாக இருந்தால், சிக்னல்கள் புறக்கணிக்கப்படும். கட்டளை SIG_DFL எனில், சமிக்ஞைகள் கணினி இயல்புநிலைக்கு காரணமாகின்றன. சிக்னல்கள் ஒரு ஒற்றை சமிக்ஞையோ ​​அல்லது சிக்னல்களின் பட்டியல் ஆகும். சமிக்ஞை (3) போன்ற சிக்னல்களை எண்ணாகவோ அல்லது அடையாளமாகவோ குறிப்பிடலாம். "SIG" prefix ஐ தவிர்க்கவும்.

எந்தவொரு வாதமும் இல்லாமல் (அல்லது வாதம்-எண்), பொறி தற்போது நிறைவேற்றப்படும் பொறி கட்டளையின் சிக்னல் எண் கொடுக்கிறது.

கட்டளை ஆரம்ப குறியீட்டை துவங்கும்போது, ​​T குறியீட்டை திரும்ப எடுக்கும் குறியீட்டின் இடத்தில், குறியீட்டு கொடி மீண்டும் கட்டளைக்கு திரும்பும் குறியீட்டைப் பயன்படுத்துகிறது.

தந்திரம் கொடியானது அறிவிக்கப்படும் போது, ​​கட்டுப்பாட்டு செயல்முறை அறிவிக்கப்படுவதைக் காட்டிலும் கட்டளை இயங்குவதைக் காட்டிலும் கட்டளையை செயல்படுத்துகிறது.

தற்போது பெயரிடப்பட்ட கொடி, பொறி கட்டளையை தற்போது நிறைவேற்றும் பொறி கட்டளையின் சிக்னல் பெயரைத் திரும்ப அளிக்கிறது.

மேக்ஸ் கொடியானது மிகப்பெரிய சமிக்ஞை எண்ணை அமைக்க முடியும் என்ற பொறி கட்டளைக்கு காரணமாகிறது.

எடுத்துக்காட்டாக, "trap {send_user" Ouch! "} கட்டளை" SIGINT "" அச்சிடுவோம்! " ஒவ்வொரு முறையும் பயனர் அழுத்தும் ^ சி.

முன்னிருப்பாக, SIGINT (இது பொதுவாக C ஐ அழுத்துவதன் மூலம் உருவாக்கப்படும்) மற்றும் SIGTERM காரணமாக வெளியேறுவதற்கு எதிர்பார்க்கலாம். எதிர்பார்ப்பு தொடங்கும் போது, ​​முன்னிருப்பாக உருவாக்கப்பட்ட பின்வரும் பொறி காரணமாக இது நிகழ்கிறது.

trap exit {SIGINT SIGTERM}

பிழைத்திருத்தியைத் தொடங்க, நீங்கள் -D கொடி பயன்படுத்தினால், ஒருங்கிணைந்த பிழைத்திருத்தியைத் தொடங்க SIGINT மறுவரையறுக்கப்பட்டுள்ளது. இது பின்வரும் பொறிக்கு காரணமாகும்:

trap {exp_debug 1} SIGINT

புதிய டிராப் கட்டளைக்கு சுற்றுச்சூழல் மாறி EXPECT_DEBUG_INIT அமைப்பதன் மூலம் பிழைத்திருத்த பொறி மாற்றப்படலாம்.

உன்னுடைய ஸ்கிரிப்ட்டில் பொறியைக் கட்டளைகளை சேர்ப்பதன் மூலம் இவை இரண்டையும் மேலெழுத முடியும். குறிப்பாக, உங்கள் சொந்த "trap exit SIGINT" இருந்தால், இது பிழைத்திருத்த பொறியியை மேலெழுதும். பயனர்கள் அனைத்தையும் பிழைத்திருத்தம் செய்யாமல் தடுக்க விரும்பினால் இது பயனுள்ளதாக இருக்கும்.

நீங்கள் SIGINT இல் உங்கள் சொந்த பொறிவை வரையறுக்க விரும்பினால், அது இயங்கும் போது பிழைத்திருத்தத்திற்கு இன்னமும் சிக்கலைத் தருகிறது:

{! [exp_debug]} {trap mystuff SIGINT}

மாற்றாக, நீங்கள் வேறு சில சமிக்ஞைகளைப் பயன்படுத்தி பிழைத்திருத்தியைக் கட்டுப்படுத்தலாம்.

SIGALRM க்கான செயலை மேலோட்டமாகப் பயன்படுத்துவதன் மூலம், பொறியானது உங்களை எதிர்பார்த்து காத்திருக்க அனுமதிக்காது. துண்டிக்கப்பட்ட கட்டளையானது SIG_IGN (புறக்கணிக்க) க்கு SIGALRM ஐ அமைக்கிறது. அடுத்தடுத்த ஸ்பான் கட்டளைகளின் போது நீங்கள் அதை முடக்கும் வரையில் இது மீண்டும் இயங்க முடியும்.

மேலும் தகவலுக்கு சிக்னல் (3) ஐப் பார்க்கவும்.

காத்திருங்கள்
ஒரு வெளிப்படையான செயல்முறை (அல்லது தற்போதைய செயல்முறை எதுவும் குறிப்பிடப்படவில்லை என்றால்) முடிவடைகிறது.

சாதாரணமாக நான்கு முழு எண்ணங்களின் பட்டியல் கொடுக்கிறது. முதல் முழுமையாய் காத்திருந்த செயல்முறையின் பிட் ஆகும். இரண்டாவது முழுமையானது அதனுடன் தொடர்புடைய ஸ்பான் ஐடி ஆகும். இயக்க முறைமை பிழை ஏற்பட்டால், அல்லது 0 இல்லையெனில் மூன்றாவது முழு எண் -1 ஆகும். மூன்றாவது முழு எண் 0 எனில், நான்காவது முழுமையானது, வளர்ந்த செயல்முறை மூலம் திரும்பிய நிலை. மூன்றாவது முழு எண் -1 எனில், நான்காவது முழுமையானது, இயக்க முறைமையின் தவறான மதிப்பின் மதிப்பாகும். உலகளாவிய மாறி errorCode அமைக்கப்பட்டது.

காத்திருப்பு இருந்து திரும்ப மதிப்பு இறுதியில் கூடுதல் கூறுகள் தோன்றும். ஒரு விருப்ப ஐந்தாவது உறுப்பு தகவல் ஒரு வர்க்கம் அடையாளம். தற்போது, ​​இந்த உறுப்புக்கான சாத்தியமான மதிப்பு CHILDKILLED ஆகும், இதில் அடுத்த இரண்டு மதிப்புகள் சி-ஸ்டைல் ​​சமிக்ஞை பெயர் மற்றும் ஒரு சிறிய உரை விளக்கம்.

பெயரிடப்பட்ட spawn_id ( செயலாக்க ஐடி அல்ல) தொடர்புடையதைக் காத்திருக்கும் செயல்முறை -ஐ கொடி அறிவிக்கிறது. ஒரு SIGCHLD கையாளுனருக்கு உள்ளே, ஸ்பான் ஐட் -1 ஐப் பயன்படுத்துவதன் மூலம் ஏதேனும் ஒரு வெளிப்படையான செயல்முறைக்கு காத்திருக்க முடியும்.

வெற்றிகரமான காத்திருப்பின் அறிகுறியாக உடனடியாக திரும்ப காத்திருப்பதற்கு -நாட் கொடி கொடியை ஏற்படுத்துகிறது. செயல்முறை (பின்னர்) வெளியேறும் போது, ​​அது வெளிப்படையான காத்திருப்பு தேவை இல்லாமல் தானாகவே மறைந்துவிடும்.

காத்திருப்பு கட்டளை "-i -1" வாதங்கள் பயன்படுத்தி ஒரு ஃபார்முட் செயல்முறைக்கு காத்திருக்கவும் பயன்படுத்தப்படலாம். வெளிப்படையான செயல்முறைகளுடன் அதன் பயன்பாடுகளைப் போலன்றி, இந்த கட்டளை எந்த நேரத்திலும் செயல்படுத்தப்படும். செயல்முறை அறுவடை செய்யப்பட்ட எந்த கட்டுப்பாடுகளும் இல்லை. இருப்பினும், செயல் மதிப்பு ஐடிக்கு திரும்ப மதிப்பை சோதிக்க முடியும்.

நூலகங்கள்

தானாகவே ஸ்கிரிப்ட்களை எதிர்பார்ப்பதற்காக இரண்டு உள்ளமைக்கப்பட்ட நூலகங்களைப் பற்றி தானாகவே எதிர்பார்க்கலாம். இவை variables exp_library மற்றும் exp_exec_library பெயரிடப்பட்ட அடைவுகளால் வரையறுக்கப்படுகின்றன. இரண்டும் மற்ற ஸ்கிரிப்ட்களால் பயன்படுத்தக்கூடிய பயன்பாட்டுக் கோப்புகளைக் கொண்டிருக்கின்றன.

exp_library கட்டமைப்பு-சுயாதீனமான கோப்புகள் உள்ளன. exp_exec_library கட்டடக்கலை சார்ந்த கோப்புகளை கொண்டுள்ளது. உங்கள் கணினியைப் பொறுத்து, இரண்டு கோப்பகங்களும் முற்றிலும் காலியாக இருக்கலாம். $ Exp_exec_library / cat-buffers கோப்பின் இருப்பிடம் உங்கள் / bin / cat buffers இயல்பாகவே என்பதை விவரிக்கிறது.

பிரிட்டி-பிரிண்டிங்

ஒரு vgrind வரையறை அழகாக அச்சிடுவதற்கு கிடைக்கிறது ஸ்கிரிப்ட்களை எதிர்பார்க்கலாம் . பகிர்வில் எதிர்பார்க்கப்படும் vgrind வரையறை சரியாக இருந்தால், அதை நீங்கள் பயன்படுத்தலாம்:

vgrind -lexpect கோப்பு

உதாரணங்கள்

மனிதன் பக்கம் விவரிக்கிற எல்லாவற்றையும் எப்படி ஒன்றாக வைக்க வேண்டும் என்பது பலருக்குத் தெரியாது. பகிர்வதை எதிர்பார்க்கும் உதாரண கோப்பகத்தின் எடுத்துக்காட்டுகளை படிக்கவும் முயற்சிக்கவும் நான் உங்களை ஊக்குவிக்கிறேன். அவர்களில் சிலர் உண்மையான நிகழ்ச்சிகள். மற்றவை சில நுட்பங்களை எளிமையாக எடுத்துக்காட்டுகின்றன, நிச்சயமாக, ஒரு தம்பதியினர் விரைவான ஹேக்ஸ். INSTALL கோப்பில் இந்த நிரல்களின் விரைவான கண்ணோட்டம் உள்ளது.

எதிர்பார்க்கும் ஆவணங்கள் (பார்க்கவும்). சில ஆவணங்களை எதிர்பார் முந்தைய பதிப்புகள் தொடர்பான தொடரியல் பயன்படுத்த போது, ​​அதனுடன் பகுத்தறிவு இன்னும் செல்லுபடியாகும் மற்றும் இந்த மனிதன் பக்கம் விட நிறைய விவரங்கள் செல்ல.

பின்னடித்துக்கொண்டு

எக்ஸ்ப்ளெக்ஸ் கமாண்ட் பெயர்களுடன் நீட்டிப்புகள் மோதி இருக்கலாம். உதாரணமாக, Tk ஆல் முற்றிலும் வேறுபட்ட நோக்கத்திற்காக அனுப்பப்படுகிறது . இந்த காரணத்திற்காக, எதிர்பார்க்கும் பெரும்பாலான கட்டளைகள் "exp_XXXX" எனவும் கிடைக்கின்றன. "Exp", "inter", "spawn", மற்றும் "timeout" ஆகியவற்றுடன் தொடங்கும் கட்டளைகள் மற்றும் மாறிகள் வேறெங்கும் இல்லை. சூழல்களுக்கு இடையே இந்த இணக்கத்தன்மை தேவைப்பட்டால் நீட்டிக்கப்பட்ட கட்டளை பெயர்களைப் பயன்படுத்தவும்.

எதிர்பார்ப்பு ஸ்கோப்பிங் ஒரு மாறாக தாராள பார்வை எடுக்கும். குறிப்பாக, எதிர்பார்ப்புக்கான திட்டத்திற்குரிய கட்டளைகளால் வாசிக்கப்படும் மாறிகள், உள்ளூர் நோக்கில் இருந்து முதலில் தேடப்படும் மற்றும் உலகளாவிய நோக்கில் காணப்படவில்லை என்றால், கண்டறியப்படும். உதாரணமாக, இது நீங்கள் எதிர்பார்க்கும் ஒவ்வொரு எழுதப்பட்ட ஒவ்வொரு முறையிலும் "உலகளாவிய நேரம்" வைக்க வேண்டிய அவசியத்தை தவிர்க்கிறது. மறுபுறம், எழுதப்பட்ட மாறிகள் எப்போதும் உள்ளூர் நோக்கில் இருக்கும் (ஒரு "உலகளாவிய" கட்டளை வெளியிடப்பட்டாலன்றி). ஸ்பான்ஸன் ஒரு செயல்முறையிலேயே செயல்படுத்தப்படுகையில் இது பொதுவான காரணியாகும். செயல்முறைக்கு வெளியே, spawn_id இனி இருக்காது, எனவே ஸ்கோப்பிங் காரணமாக வெளிவந்த செயல்முறை இனி அணுகப்படாது. அத்தகைய நடைமுறைக்கு "உலகளாவிய spawn_id" ஐச் சேர்க்கவும்.

பல பங்காளி திறனை (அதாவது, BSD *. *) தேர்வு செய்யவில்லை, கருத்து கணிப்பு (SVR> 2), அல்லது ஏதேனும் ஏதேனும் ஒன்று), ஒரு நேரத்தில் ஒரு செயல்முறையை மட்டுமே கட்டுப்படுத்த முடியும் என எதிர்பார்க்கப்படுகிறது . இந்த வழக்கில், spawn_id ஐ அமைக்க முயற்சிக்காதீர்கள் , அல்லது செயல்முறை இயங்கும் போது செயலாக்கங்களை செயற்படுத்த வேண்டும். மேலும், ஒரே நேரத்தில் பல செயல்களிலிருந்து (ஒரு பயனர் உட்பட) எதிர்பார்க்க முடியாது.

முனைய அளவுருக்கள் ஸ்கிரிப்ட்களில் பெரிய தாக்கத்தை ஏற்படுத்தலாம். உதாரணமாக, ஒரு ஸ்கிரிப்டை எதிரொலிப்பதற்காக எழுதப்பட்டிருந்தால், எதிரொலித்திருந்தால் அது தவறாகவே இருக்கும். இந்த காரணத்திற்காக, இயல்புநிலையில் சக்திகள் முதுகெலும்பு முனையங்கள் எதிர்பார்க்கின்றன. துரதிருஷ்டவசமாக, இது மற்ற திட்டங்களுக்கு விரும்பத்தகாத விஷயங்களைச் செய்யலாம். உதாரணமாக, emacs ஷெல் "வழக்கமான" மேப்பிங்கை மாற்ற விரும்புகிறது: புதிய வரிகளை புதிய வண்டிக்கு பதிலாக புதிய வால்யூன்களை மாற்றியமைக்கிறது, எதிரொலிக்கும் முடக்கம். இது உள்ளீடு வரியைத் திருத்துவதற்கு emacs ஐப் பயன்படுத்த அனுமதிக்கிறது. துரதிர்ஷ்டவசமாக, எதிர்பார்த்தால் இது யூகிக்க முடியாது.

முனைய அளவுருக்கள் அதன் முன்னிருப்பு அமைப்பை மேலெழுதக்கூடாது என்று நீங்கள் கோரலாம், ஆனால் அத்தகைய சூழல்களுக்கு ஸ்கிரிப்டை எழுதும் போது நீங்கள் மிகவும் கவனமாக இருக்க வேண்டும். Emacs வழக்கில், எதிரொலிக்கும் மற்றும் முடிவிலா வரி மேப்பிங் போன்ற விஷயங்களைப் பொறுத்து தவிர்க்கவும்.

பட்டியல்கள் உண்மையில் ஒரு வாதம் அல்லது பலவழியாக இருந்தால், முடிவு செய்யக்கூடிய வாதங்கள் ஒற்றைப் பட்டியலில் ( எதிர்பார்க்கும் மாறுபாடுகள் மற்றும் தொடர்பு கொள்ளுதல்) ஒரு சொற்பொழிவைப் பயன்படுத்துகின்றன. இந்த பட்டியல் உண்மையில் ஒரு ஒற்றை வாதத்தை பிரதிநிதித்துவப்படுத்தும் போது வழக்கில் தோல்வியடைகிறது, இது பல உட்பொதிக்கப்பட்ட \ n இன் இடைவெளிகளுடனான இடைவெளிகளைக் கொண்டிருக்கும். இது போதுமான அளவுக்கு சாத்தியமற்றதாய் தோன்றுகிறது, இருப்பினும் ஒரு வாதத்தை ஒரு ஒற்றை வாதமாகக் கையாள்வதற்கு வால்யூம் "நன்பர்" பயன்படுத்தப்படலாம். இயந்திரம் உருவாக்கிய எதிர்பார்ப்பு குறியீடாக இது கருத்தாக பயன்படுத்தப்படலாம். இதேபோல், ஒரு ஒற்றை வாதம் பல வடிவங்கள் / செயல்களாக கையாளப்பட வேண்டும்.

பிழைகள்

இது "செக்ஸ்" ("ஸ்மார்ட் எக்ஸ்க்" அல்லது "சேன்-எக்ஸ்பெக்") என்ற திட்டத்திற்கு பெயரிடுவதற்கு மிகவும் ஆவலாக இருந்தது, ஆனால் நல்ல உணர்வு (அல்லது ஒருவேளை புரிட்டனிசம்) நிலவியது.

சில அமைப்புகள், ஒரு ஷெல் உருவாகும்போது, ​​இது tty ஐ அணுக முடியாது ஆனால் எப்படியும் இயங்கும் பற்றி புகார். இது உங்கள் கணினியைப் பற்றி தெரியாது என்று கட்டுப்படுத்தும் tty பெற்று ஒரு அமைப்பு உள்ளது. தயவுசெய்து அதை கண்டுபிடித்து, இந்த தகவலை எனக்கு திருப்பி அனுப்புங்கள்.

Ultrix 4.1 (இங்குள்ள சமீபத்திய பதிப்புகள்) 1000000 க்கும் மேலான நேரங்களை 0 க்கு சமமானதாக கருதுகிறது.

டிஜிட்டல் யுனிக்ஸ் 4.0A (மற்றும் பிற பதிப்புகள்) நீங்கள் SIGCHLD கையாளுதலை வரையறுத்தால் ptys ஐ ஒதுக்க மறுக்கின்றது . மேலும் தகவலுக்கு நன்கொடைப் பக்கத்தைப் பார்க்கவும்.

ஐ.ஆர்.ஐ.ஆர்.எக்ஸ் 6.0 என்பது பைத்தியம் அனுமதியை சரியாகக் கையாள்வதில்லை, எனவே வேறு ஒருவரிடம் முன்பு பயன்படுத்தப்பட்ட பைட்டுகளை வழங்குவதற்கான முயற்சிகளை எதிர்பார்த்தால் அது தோல்வியடைகிறது. IRIX 6.1 க்கு மேம்படுத்தவும்.

TERM அமைக்கப்படவில்லை என்றால் டெல்நெட் (SunOS 4.1.2 க்குள் மட்டும் சரிபார்க்கப்பட்டது) தொங்குகிறது. இது TRO ஐ வரையறுக்காத cgi ஸ்கிரிப்ட்களில் கிரான், சிக்கலில் உள்ளது. எனவே, நீங்கள் அதை வெளிப்படையாக அமைக்க வேண்டும் - என்ன வகை பொதுவாக பொருத்தமற்றது. அது ஒன்றுக்கு அமைக்க வேண்டும்! பின்வரும் அநேகமாக பெரும்பாலான நிகழ்வுகளுக்கு போதுமானதாக உள்ளது.

set env (TERM) vt100

ஷெல் மற்றும் வீட்டை அமைக்காதபட்சத்தில், குறிப்பு (BSDI BSD / OS 3.1 i386 கீழ் மட்டுமே சரிபார்க்கப்பட்டது) தொடுகிறது. இந்த சூழல் மாதிரியான சிக்கல், cgi ஸ்கிரிப்ட்களில், இந்த சூழல் மாறிகள் வரையறுக்கப்படவில்லை. எனவே, நீங்கள் அவற்றை வெளிப்படையாக அமைக்க வேண்டும் - எந்த வகை பொதுவாக பொருத்தமற்றது. அது ஒன்றுக்கு அமைக்க வேண்டும்! பின்வரும் அநேகமாக பெரும்பாலான நிகழ்வுகளுக்கு போதுமானதாக உள்ளது.

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

Ptys இன் சில செயலாக்கங்கள் வடிவமைக்கப்பட்டுள்ளன, இதனால் செயல்முறை வெளியீடு மூடப்பட்ட பின்னர், 10 முதல் 15 விநாடிகளில் (உண்மையான எண் செயல்படுத்து-சார்புடையது) கர்னல் எந்த படிக்காத வெளியீடையும் தூக்கி எறியும். இதனால் போன்ற திட்டங்கள் எதிர்பார்க்கலாம்

ஸ்பென்ட் தேதி தூக்கம் 20 எதிர்பார்க்கிறது

தோல்வியடையும். இதனை தவிர்க்க, இடைவிடா அல்லாத செயல்திட்டங்களை செயல்படுத்துவதற்கு பதிலாக செயல்படாது. இத்தகைய சூழ்நிலைகள் கருத்தாக இருந்தாலும், நடைமுறையில் நான் இந்த நிலைப்பாட்டின் காரணமாக உண்மையிலேயே ஊடாடும் திட்டத்தின் இறுதி வெளியீட்டை இழக்க நேரிடும் ஒரு சூழ்நிலையை நான் சந்தித்ததில்லை.

மறுபுறம், செயலி கோப்பு டிஸ்கிரிப்டர் மூடப்பட்டவுடன் உடனடியாக எந்த அச்சமற்ற வெளியீடையும் க்ரே யுனிகோஸ் ptys தூக்கி எறியும். நான் இதை சிதறடித்து அறிக்கை செய்துள்ளேன், மேலும் அவை ஒரு பிழைத்திருத்தத்தில் வேலை செய்கின்றன.

சில நேரங்களில் ஒரு தாமதம் மற்றும் ஒரு பதிலுக்கும் இடையில் ஒரு தாமதம் தேவைப்படுகிறது, இது போன்ற ஒரு இடைமுக இடைமுகம் UART அமைப்புகளை மாற்றி அல்லது தொடக்க / நிறுத்த பிட்களைத் தேடுவதன் மூலம் பாட் விகிதங்களை மாற்றுகிறது. பொதுவாக, இந்த இரண்டாவது அல்லது இரண்டு தூங்க வேண்டும். உள்ளீடு பெற வன்பொருள் தயாராக இருக்கும் வரை இன்னும் வலுவான நுட்பம் மீண்டும் முயற்சிக்க வேண்டும். பின்வரும் உதாரணம் உத்திகள் இரண்டையும் பயன்படுத்துகிறது:

"வேக 9600 \ r" ஐ அனுப்பவும்; தூக்கம் 1 எதிர்பார்க்கும் {நேரம் \ "அனுப்புகிறது; exp_continue} $ prompt}

டிராக்கின் நிகழ்வு வளையத்தில் அமைந்திருக்கும் எந்த கட்டளையிலும், பொறி-குறியீட்டு வேலை செய்யாது, தூக்கம் போன்றது. பிரச்சனை என்னவென்றால் நிகழ்வு நிகழ்வு வளையத்தில், Tcl அசின்க் நிகழ்வு நிகழ்வுகளிலிருந்து திரும்ப குறியீடுகள் நிராகரிக்கிறது. பொறி குறியீட்டில் கொடியை அமைக்க வேண்டும். கட்டளையின் பின்னர் உடனடியாக கொடியை சரிபார்க்கவும் (அதாவது தூக்கம்).

Expect_background கட்டளை புறக்கணிக்கப்படுகிறது -நேரடி வாதங்கள் மற்றும் பொதுவாக காலவரையின்றி எந்த கருத்தும் இல்லை.

& # 34; EXPECT குறிப்புகள் & # 34;

எதிர்பார்ப்பு பற்றி சில விஷயங்கள் உள்ளன என்று உள்ளுணர்வு இருக்கலாம். இந்த விவகாரங்களில் சிலவற்றை ஆலோசனையுடன் தொடர்புப்படுத்த இந்த முயற்சி முயற்சி செய்கிறது.

ஒரு பொதுவான எதிர்பார்ப்பு ஷெல் ஷெல்ஸ்களை எவ்வாறு அடையாளம் காணுவது என்பது. இவை வித்தியாசமாக மக்கள் மற்றும் வேறுபட்ட குண்டுகளால் வித்தியாசமாக அமைக்கப்பட்டிருப்பதால், நெடுங்காலமாக தானியங்கி முறையில் rlogin ஆனது உடனடியாகத் தெரிந்துகொள்ளாமல் கடினமாக இருக்கலாம். சுற்றுச்சூழல் மாறி EXPECT_PROMPT இல் தங்கள் உடனடி (குறிப்பாக, அதன் முடிவை) விவரிக்கும் ஒரு வழக்கமான வெளிப்பாட்டை பயனர்கள் சேமித்து வைத்திருப்பதே நியாயமான ஒரு மாநாடு ஆகும். பின்வரும் போன்ற குறியீட்டைப் பயன்படுத்தலாம். EXPECT_PROMPT இல்லையெனில், குறியீட்டில் இன்னும் சரியாக செயல்படுவதற்கான நல்ல வாய்ப்பு உள்ளது.

set prompt "(% | # | \\ $) $"; # இயல்புநிலை prompt catch {set prompt $ env (EXPECT_PROMPT)} -re $ prompt

நீங்கள் எதிர்பார்க்கும் எதைப் பற்றிய முடிவுகளையும் உள்ளடக்கும் எதிர்பார்ப்புகளை எழுதுவதற்கு நான் உற்சாகப்படுத்துகிறேன். இது முழு விஷயத்தையும் பார்க்கும் முன்பு ஒரு கேள்விக்கு பதில் சொல்லும் சாத்தியத்தை தவிர்க்கிறது. கூடுதலாக, நீங்கள் அவற்றை முழுமையாகப் பார்க்கும் முன்பு வினாக்களுக்கு விடையளிக்க முடியும் போது, ​​நீங்கள் ஆரம்பத்தில் பதில் சொன்னால், உங்கள் பதில் கேள்விக்கு நடுவில் எதிரொலிப்பதாக தோன்றும். வேறு வார்த்தைகளில் சொன்னால், இதன் விளைவாக உரையாடல் சரியாகிவிடும், ஆனால் சிதறடிக்கப்பட்டுள்ளது.

பெரும்பாலான கட்டளைகள் இறுதியில் ஒரு ஸ்பேஸ் கதாபாத்திரம் அடங்கும். உதாரணமாக, ftp லிருந்து prompt 'f', 't', 'p', '>' மற்றும். இந்த வரியில் பொருந்தும் பொருட்டு, இந்த ஒவ்வொரு எழுத்துக்கும் நீங்கள் கணக்கில் இருக்க வேண்டும். வெற்று சேர்க்க வேண்டாம் என்பது பொதுவான தவறாகும். வெளிப்படையாக வெற்று போடு.

நீங்கள் X * வடிவத்தின் ஒரு வடிவத்தை பயன்படுத்தினால், * X முடிவில் இருந்து பெறப்படும் அனைத்து வெளியீடும் பொருந்திய கடைசி பொருளுக்கு பொருந்தும். இந்த உள்ளுணர்வு ஒலிக்கும் ஆனால் சற்று குழப்பமானதாக இருக்கலாம், ஏனென்றால் "கடைசி விஷயம்" என்பது கணினி வேகத்தை பொறுத்து மற்றும் கர்னல் மற்றும் சாதன இயக்கி மூலம் I / O இன் செயலாக்கத்தைப் பொறுத்து மாறுபடும்.

குறிப்பாக, மனிதர்கள் ஒரு நேரத்தில் வெளியீடு ஒரு வரியை உற்பத்தி செய்யும் போது, ​​உண்மையில் மிகப்பெரிய துகள்கள் (அணுகுமுறை) உள்ள நிரல் வெளியீடு பார்க்க முனைகிறது. இதுபோன்றது, முந்தைய பத்தியின் முன்மாதிரியில் * தற்போதைய மின்னோட்டத்தின் முடிவோடு ஒப்பிடலாம், இருப்பினும் இன்னும் அதிகமானதாக இருப்பினும், போட்டியின் நேரத்தில் பெறப்பட்ட அனைத்து வெளியீடாகவும் இருந்தது.

எதிர்பார்ப்பு இல்லை, உங்கள் வெளியீடு அது குறிப்பிட்ட கணக்குகளைத் தவிர்த்து, மேலும் வெளியீடு வரும் என்று தெரியவில்லை.

வரி சார்ந்த இடைநிறுத்தத்தை பொறுத்து கூட ஞானமற்றது. நிரல்கள் அரிதாகவே செய்கின்றன, அவை தாங்கிக் கொள்ளும் வகையைப் பற்றி உறுதிபடுத்துகின்றன, ஆனால் கணினி அஜீரணம் வெளியீட்டு கோடுகளை முறித்துக் கொள்ளும், இதனால் வரிகளை சீரற்ற இடங்களில் உடைக்கலாம். எனவே, வடிவங்களை எழுதும் போது நீங்கள் ஒரு வரியில் கடைசி சில எழுத்துக்களை வெளிப்படுத்தினால், அவ்வாறு செய்வது ஞானமானது.

நீங்கள் ஒரு நிரல் கடைசி வெளியீட்டில் ஒரு முறை காத்திருக்கிறீர்கள் மற்றும் நிரல் அதற்கு பதிலாக வேறு ஏதாவது வெளிப்படுத்துகிறது என்றால், நீங்கள் காலவரையற்ற முக்கிய வார்த்தை என்று கண்டறிய முடியாது. காரணம், எதிர்பார்ப்பு முடிவடையாது - அதற்கு பதிலாக ஒரு eof அறிகுறி கிடைக்கும். அதற்கு பதிலாக பயன்படுத்தவும். இன்னும் நன்றாக, இரண்டு பயன்படுத்த. அந்த வழி எப்பொழுதும் சுற்றி நகர்த்தப்பட்டால், நீங்கள் வரிகளைத் திருத்தவேண்டியதில்லை.

புதிய வரிகளை வழக்கமாக வண்டி ஓட்டுதலுடன், முனைய இயக்கி மூலம் வெளியீடு செய்யும் போது வரிசை வரிசையாக்கம் செய்யப்படுகிறது. எனவே, நீங்கள் printf ("foo \ nbar") எனில், "foo \ r \ nbar" என்ற முறையைப் பயன்படுத்த வேண்டும் எனில்,

எதிர்பார்ப்பு _ பயனாளர் வழியாக படிக்கும்போது இதே போன்ற மொழிபெயர்ப்பு ஏற்படுகிறது. இந்த வழக்கில், நீங்கள் மீண்டும் அழுத்தினால், அது ஒரு புதிய வரிக்கு மொழிபெயர்க்கப்படும். எதிர்பார்த்தால், அதன் முனையம் முனையத்தை (டெல்நெட் போன்றது) அமைக்கும் ஒரு நிரலுக்கு செல்கிறது, நிரல் உண்மையான வருவாயை எதிர்பார்க்கிறது என ஒரு சிக்கல் இருக்கும். (சில திட்டங்கள் உண்மையிலேயே மன்னிக்கின்றன, அவை தானாகவே புதிய வரிகளை மொழிபெயர்க்கும், ஆனால் பெரும்பாலானவை இல்லை.) துரதிர்ஷ்டவசமாக, ஒரு நிரல் முனையத்தில் முனையத்தில் வைக்கப்பட்டதை கண்டுபிடிக்க முடியவில்லை.

புதிய நாணயங்களை திரும்ப செலுத்துவதன் மூலம் கைமுறையாக பதிலாக, தீர்வு "ஸ்டிடி மூல" கட்டளையை பயன்படுத்த வேண்டும், இது மொழிபெயர்ப்பு நிறுத்தப்படும். இருப்பினும், இதன் பொருள் சமைத்த வரி-திருத்தும் அம்சங்களை நீங்கள் பெறமாட்டீர்கள் என்பதாகும்.

உங்கள் முனையத்தை மூல பயன்முறையில் உட்குறிப்பாகச் செயல்படுத்துவதால் இந்த சிக்கல் ஏற்படாது.

ஸ்கிரிப்ட்களை எதிர்பார்ப்பதில் கடவுச்சொற்களை (அல்லது பிற தனிப்பட்ட தகவல்) சேமிக்க பெரும்பாலும் பயன்படுத்தப்படுகிறது. ஒரு கணினியில் சேமித்து வைக்கப்பட்டுள்ள எந்தவொரு தகவலையும் அணுகுவதற்கு எளிதானது என்பதால் இது பரிந்துரைக்கப்படவில்லை. இதனால், ஸ்கிரிப்ட்டின் கடவுச்சொற்களை ஊடாடக்கூடியது, அவற்றை மொழியியல் ரீதியாக உட்படுத்துவதை விட ஒரு சிறந்த யோசனை ஆகும். இருப்பினும், சில நேரங்களில் இத்தகைய உட்பொதித்தல் மட்டுமே சாத்தியம்.

துரதிருஷ்டவசமாக, யுனிக்ஸ் கோப்பு முறைமை இயங்கக்கூடிய ஆனால் படிக்க முடியாத ஸ்கிரிப்டை உருவாக்கும் நேரடி வழி இல்லை. Setgid ஷெல் ஸ்கிரிப்ட்களை ஆதரிக்கும் சிஸ்டம்ஸ் மறைமுகமாக இதை உருவகப்படுத்தலாம்:

எதிர்பார்ப்பு ஸ்கிரிப்ட் (இரகசியத் தரவைக் கொண்டது) வழக்கம் போல் உருவாக்கவும். அதன் அனுமதியை 750 (-rwxr-x ---) ஆகவும், நம்பகமான குழுவினரால் சொந்தமாகவும் கொள்ளுங்கள், அதாவது, அதை வாசிக்க அனுமதிக்கப்படும் ஒரு குழு. தேவைப்பட்டால், இந்த நோக்கத்திற்காக ஒரு புதிய குழுவை உருவாக்கவும். அடுத்து, அதே குழுவினருக்கு சொந்தமான 2751 (-rwxr-s - x) உடன் ஒரு / பின் / ஷ் ஸ்கிரிப்ட்டை உருவாக்கவும்.

இதன் விளைவாக ஒரு ஸ்கிரிப்ட் எவரேனும் செயல்படுத்தப்படலாம் (வாசிக்கலாம்). அழைக்கப்பட்ட போது, ​​அது எதிர்பார் ஸ்கிரிப்ட் இயங்குகிறது.

& # 34; மேலும் காண்க & # 34;

Tcl (3), libexpect (3)
"எக்ஸ்ப்ளோரரிங் எக்ஸ்ப்ரெக்: எ டி.clின் அடிப்படையிலான கருவித்தொகுதி ஆட்டோமேட்டிங் இன்டராக்டிவ் புரோகிராம்ஸ்" டான் லிபஸ், பக் .602, ஐஎஸ்பிஎன் 1-56592-090-2, ஓ ரெய்லி மற்றும் அசோசியேட்ஸ், 1995.
"எதிர்பார்த்தது: டான் லிபஸ், டிரான்ஸிட்ஸ் ஆஃப் தி கோடை 1990 USENIX மாநாடு, அனாஹைம், கலிஃபோர்னியா, ஜூன் 11-15, 1990.
டோன் லிபஸ், 1990 USENIX பெரிய நிறுவல் அமைப்புகள் நிர்வாக மாநாடு, கொலராடோ ஸ்பிரிங்ஸ், கொலராடோ, அக்டோபர் 17-19, 1990 இன் செயல்முறைகள் மூலம் "கணினி நிர்வாகக் காரியங்களை தானியங்கு செய்ய எதிர்பார்க்கிறது ".
ஜனவரி 22-26, 1990, ஜனவரி 22-26, 1990, வாஷிங்டன் டி.சி., யுனினிடெக்ஸ் மாநாடு, ஜான் ஓஸ்டர்ஹவுட், ப்ரொசீடிங்ஸ் ஆஃப் தி குளிர்காலின் செயல்முறைகள் "Tcl: ஒரு உட்பொதிக்கப்பட்ட கட்டளை மொழி". டான் லிபஸ், கம்ப்யூட்டிங் சிஸ்டம்ஸ் , தொகுதி. 4, எண் 2, கலிபோர்னியா பல்கலைக்கழகம் பிரஸ் ஜர்னல்கள், நவம்பர் 1991. டான் லிபஸ், ரோசெசியன் டெஸ்டிங் மற்றும் கன்ஃபார்மன்ஸ் டிரேடிங் இன்டராக்டிவ் புரோகிராமன்ஸ் ", 1992 இன் யுனினிக்ஸ் மாநாடு, பக். 135-144, சான் அன்டோனியோ, டி.எக்ஸ். டான் லிபஸ், மென்பொருள் - பயிற்சி & அனுபவம், ஜான் விலே & சன்ஸ், வெஸ்ட் சஸ்சக்ஸ், இங்கிலாந்து, தொகுதி - ஜூன் 12-15, 1992. நான் "கிபிட்ஸ் - இணைப்பதன் பல ஒருங்கிணைந்த திட்டங்கள் ஒன்றாக"

23, எண் 5, மே, 1993. டான் லிபஸ், டி.சி.எல் / டி.கே. தொழிற்சாலைகள், பெர்க்லி, CA, ஜூன் 10-11, 1993 இன் செயல்முறைகள், "டி.clிக் பயன்பாடுகளுக்கான ஒரு பிழைத்திருத்தம்".

AUTHOR இன்

டான் லிபஸ், நியமங்கள் மற்றும் தொழில்நுட்ப நிறுவனங்களின் தேசிய நிறுவனம்

அங்கீகாரங்களாகக்

Tcl க்கான ஜான் ஓஸ்டர்ஹவுட் மற்றும் ஸ்காட் பாஸ்லே ஆகியோருக்கு உத்வேகம் அளித்ததற்கு நன்றி. எதிர்பார்ப்பின் தன்னியக்க வடிவமைப்பு குறியீட்டை ராப் சவோயிக்கு நன்றி.

வரலாற்று ஆவணம் எதிர்பார்க்கும் பரிணாம வளர்ச்சிக்கு மிகவும் ஆவணங்கள். இது சுவாரஸ்யமான வாசிப்பு மற்றும் இந்த மென்பொருள் இன்னும் நுண்ணறிவால் கொடுக்க கூடும். இதில் எனக்கு தெரிவித்த மக்களுக்கு நன்றி தெரிவித்தவர்கள் எனக்கு உதவி செய்தனர்.

அமெரிக்க அரசாங்கத்தால் பகுத்தறிவு வடிவமைப்பு மற்றும் செயலாக்கம் செய்யப்பட்டது, எனவே பொதுத் துறையில் உள்ளது. இந்த திட்டம் மற்றும் ஆவணங்கள் அல்லது அவற்றின் பகுதிகள் பயன்படுத்தப்படுகின்றன என்றால் ஆசிரியர் மற்றும் NIST கடன் பெற விரும்புகிறேன்.