मुझे 20 वर्षीय इंटरैक्टिव कमांड लाइन यूनिक्स एप्लिकेशन विरासत में मिला है जो अब इसके विक्रेता द्वारा समर्थित नहीं है। हमें इस एप्लिकेशन में कुछ कार्यों को स्वचालित करने की जरूरत है।मैं पर्ल के माध्यम से प्रोग्रामेटिक रूप से एक इंटरैक्टिव यूनिक्स एप्लिकेशन को कैसे नियंत्रित कर सकता हूं?
इनमें से सबसे परेशानी कुछ अलग-अलग पैरामीटर (जैसे विभिन्न पहचानकर्ता, अलग-अलग नाम) के साथ हजारों नए रिकॉर्ड बना रही है। रिकॉर्ड्स को अनुक्रम में बनाया जाना चाहिए, एक समय में, जिसमें मैन्युअल रूप से करने के लिए कई महीने (और इसलिए डॉलर) लगेंगे। ज्यादातर मामलों में, रिकॉर्ड बनाने में कमांड में कुंजीिंग, प्रतिक्रियाओं को पढ़ने, आगे के आदेशों में कुंजी आदि का एक बहुत ही अनुमानित पैटर्न होता है। हालांकि, कुछ रिकॉर्ड निर्माण संचालन के परिणामस्वरूप त्रुटि की स्थिति ('इस पहचानकर्ता के साथ रिकॉर्ड पहले से मौजूद है') जिसके लिए आवश्यकता होती है आदेशों का एक अलग सेट शानदार ढंग से बाहर निकलने के लिए।
नाम पाइप:
मैं यह करने के लिए कुछ अलग अलग तरीकों से देख सकते हैं। एक पर्ल स्क्रिप्ट लिखें जो एसटीडीआईएन और एसटीडीओयूटी के साथ लक्षित अनुप्रयोग चलाती है, नामित पाइप पर सेट की जाती है, फिर लक्ष्य पैरामीटर को आवश्यक पैरामीटर के साथ रिकॉर्ड बनाने के लिए आदेशों का अनुक्रम भेजता है, और फिर बाहर निकलने और बंद करने के लिए लक्षित एप्लिकेशन को निर्देशित करता है। फिर हम विभिन्न मानकों के साथ जितनी बार आवश्यक हो स्क्रिप्ट चलाते हैं।
आवेदन। एक और यूनिक्स उपकरण खोजें जिसका उपयोग इंटरैक्टिव प्रोग्राम स्क्रिप्ट करने के लिए किया जा सकता है। केवल एक ही जिन्हें मैं खोजने में सक्षम हूं, expect है, लेकिन यह शीर्ष पर बनाए रखा प्रतीत नहीं होता है; और चैट, जो मुझे पहले की उम्र से याद है, और जो मुझे लगता है कि कम या ज्यादा कम करना प्रतीत होता है, लेकिन यह केवल मॉडेम को नियंत्रित करने के लिए प्रतीत होता है।
एक और संभावित जटिलता: मुझे लगता है लक्ष्य आवेदन एक VT100 टर्मिनल के लिए लिखा गया था और यह बच दृश्यों के कुछ प्रकार का उपयोग करता है चीजों पर प्रकाश डाला प्रदान की तरह करते हैं।
मेरा प्रश्न है कि मुझे क्या दृष्टिकोण लेना चाहिए? इनमें से एक, या कुछ पूरी तरह से अलग? मुझे नामित पाइप का उपयोग करने का विचार पसंद है और उसके बाद एक पर्ल स्क्रिप्ट है जो फीफो खोलती है और आवश्यकतानुसार पढ़ती है और लिखती है, क्योंकि यह बहुत लचीलापन प्रदान करती है, लेकिन जो मैंने पढ़ा है, उससे ऐसा लगता है कि बहुत सारी संभावित समस्याएं हैं मैं इस रास्ते से नीचे चला गया।
अग्रिम धन्यवाद।
उम्मीद अब स्रोतforge पर है http://sourceforge.net/projects/expect/ – Mark
अद्यतन: मेरे पास Expect.pm का उपयोग कर समाधान का निर्माण है। उत्तर देने वाले सभी व्यक्तियों को धन्यवाद। मैं परीक्षण सर्वर पर एसएसएच कर सकता हूं, ऐप शुरू कर सकता हूं, और इसके साथ बातचीत करना शुरू कर सकता हूं। ऐसा लगता है कि वीटी 100 नियंत्रण कोड काफी सरल हैं। वर्तमान में मेरे पास खाता नहीं है, लेकिन मैंने कुछ उपयोगकर्ता नाम सीखे हैं, इसलिए मुझे लगता है कि मेरा पहला वास्तविक स्वचालन परीक्षण प्रदर्शनकर्ता खाते पर एक शब्दकोश हमला होगा ... –