2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Shell स्वचालितं अन्तरक्रियाम् अपेक्षध्वम्
दैनिक Linux संचालनस्य अनुरक्षणस्य च समये प्रायः दूरस्थरूपेण सर्वरे प्रवेशः आवश्यकः भवति प्रवेशप्रक्रियायाः समये अन्तरक्रियाशीलप्रक्रिया आवश्यकी भवति, तथा च भवद्भिः हाँ/न इत्यादीनि सूचनानि प्रविष्टव्यानि भवेयुः, अतः अन्तरक्रियां प्राप्तुं expect इत्यस्य उपयोगः भवति .
कील वाक्यविन्यास
❶!#!/usr/bin/expect/
एषा रेखा स्क्रिप्ट् मध्ये कोड् निष्पादनार्थं कस्य शेल् इत्यस्य उपयोगः करणीयः इति ऑपरेटिंग् सिस्टम् इत्यस्मै वदति । अत्र अपेक्षां कुर्वन्तु वस्तुतः Linux इत्यस्य अधः bash तथा Windows इत्यस्य अधः cmd इत्यस्य समानम् अस्ति । NOTE: एषा पङ्क्तिः स्क्रिप्ट् मध्ये प्रथमपङ्क्तिः भवितुम् आवश्यकी अस्ति ।
❷सेट्
expect इत्यस्य पूर्वनिर्धारितः समयसमाप्तिः set आदेशस्य माध्यमेन सेट् कर्तुं शक्यते यदि समयसमाप्तिः सीमितः नास्ति ।
यथा: set timeout 300 //सत्रसमयसमाप्तिः 300s इति सूचयति
यथा: समयसमाप्तिः -1/setting/never timeout इति सेट् कुर्वन्तु, सामान्यसेटिंग्स्
नोटः- भवद्भिः किमर्थं समयसमाप्तिः सेट् कर्तव्या? अस्माकं कम्पनीयाः एकं निर्धारितं कार्यं यत् दूरस्थं ftp तः सञ्चिकाः समन्वययति स्म तत् सर्वदा समाप्तं भवति स्म पश्चात्, अहं समयसमाप्तिम् -1 इति सेट् कृतवान् तथा च तत् सम्यक् आसीत् ।
❸स्पावन्
spawn इत्यस्य अनन्तरं प्रायः Linux execution आदेशः भवति, यस्य अर्थः अस्ति यत् सत्रं उद्घाटयितुं, प्रक्रियां आरभ्य, अनन्तरं अन्तरक्रियासूचनायाः अनुसरणं करणीयम् ।
❹अपेक्षा
केवलं spawn द्वारा निष्पादितानां आदेशानां निष्पादनपरिणामाः expect द्वारा गृहीताः भवन्ति, येषु मुख्यतया मानकनिवेशप्रॉम्प्टसूचना, eof, समयसमाप्तिः च सन्ति । आदेशप्रॉम्प्ट् इत्यस्य दृश्यतां प्रतीक्ष्यताम्, यत् उपयोक्तृनिवेशं गृहीतुं प्रॉम्प्ट् अस्ति:
➎प्रेषयतु
अन्तरक्रियायाः आवश्यकतां जनयति मूल्यानि प्रेषयितुं उपयोक्तुः मैनुअल् निवेशस्य स्थाने अयं आदेशः स्वयमेव प्रविष्टुं वा रेखाफीड् वा कर्तुं न शक्नोति, सामान्यतया च r (cariage return) अथवा n योजयितुं आवश्यकं भवति
expect "password"{ send "abc123r"} //एकस्याः रेखायाः प्रेषणभागस्य {} भवितुमर्हति ।
❻टर्मिनेटर eof/अन्तर्क्रियाम् अपेक्षते
expect eof
इदं अवश्यं योजयितव्यं spawn इत्यस्य अनुरूपं, अस्य अर्थः अस्ति यत् capture terminal output information समाप्तं भवति, if....endif इत्यस्य सदृशम्
संवाद
निष्पादनस्य समाप्तेः अनन्तरं अन्तरक्रियाशीलं अवस्थां निर्वाहयन्तु तथा च नियन्त्रणं कन्सोल् प्रति स्थानान्तरयन्तु अस्मिन् समये हस्तचलितसञ्चालनं कर्तुं शक्यते । यदि तादृशं वाक्यं नास्ति तर्हि दूरस्थटर्मिनले स्थातुं न अपितु प्रवेशस्य समाप्तेः अनन्तरं निर्गमिष्यति ।
PS: expect स्क्रिप्ट् interact अथवा expect eof इत्यनेन समाप्तं भवितुमर्हति ।
उदाहरण
शेल् स्क्रिप्ट् मध्ये expect इति आदेशं सम्मिलितं कुर्वन्तु, प्रारूपं निम्नलिखितम् अस्ति
उदाहरणम् 1: 22.sh create folder script इति
#!/बिन/श सम्भावयति spawn ssh 10.1.1.196 अपेक्ष्य गुप्तशब्द {xxxn प्रेषयतु} cd /home/cg/hmf_app/testr प्रेषयन्तु mkdir newworkr प्रेषित करें निर्गमनं प्रेषयतु expect eof ईओएफ |
उदाहरणम् २: फोल्डर् शेल् स्क्रिप्ट् रचयन्तु
सम्भावयति spawn ssh 10.1.1.196 अपेक्ष्य गुप्तशब्द {xxxn प्रेषयतु} cd /home/cg/hmf_app/testr प्रेषयन्तु mkdir newworkr प्रेषित करें निर्गमनं प्रेषयतु expect eof ईओएफ |
उदाहरणम् ३ : सञ्चिकानां प्रतिलिपिं कुर्वन्तु
सम्भावयति सेट समयसमाप्ति -1 spawn scp [email protected]:/डेटा/पैकेज/कैसब/$कैसबजिप./ अपेक्ष्य गुप्तशब्द {xxxn प्रेषयतु} expect eof ईओएफ |
टिप्पणी : १.
ईओएफ
...
ईओएफ
एकं शेल् स्क्रिप्ट् प्रतिनिधियति
refer to : १.शेल् स्वचालितं interaction_shell स्क्रिप्ट् अन्तरक्रियाशीलं स्वचालितं निवेशसामग्री-CSDN ब्लॉगं अपेक्ष्यताम्