मैं एक उम्मीद स्क्रिप्ट लिख रहा हूं और शेल प्रॉम्प्ट (लिनक्स पर) से निपटने में परेशानी हो रही है। मेरी अपेक्षा स्क्रिप्ट rlogin
फैलती है और रिमोट सिस्टम ksh
का उपयोग कर रहा है। रिमोट सिस्टम पर प्रॉम्प्ट में वर्तमान निर्देशिका " > "
(स्पेस से अधिक जगह) है। एक स्क्रिप्ट का टुकड़ा हो सकता है:मैं एक अपेक्षित स्क्रिप्ट में इनपुट बफर कैसे फ्लश कर सकता हूं?
send "some command here\r"
expect " > "
यह सरल आदेशों के लिए काम करता है, लेकिन कोई बात बिगड़ जाए जब आदेश मैं भेज रहा हूं (या अधिक सटीक टर्मिनल की चौड़ाई से अधिक है शुरू करते हैं, क्या ksh
सोचता है की चौड़ाई है अन्तिम छोर)। उस स्थिति में, ksh
इंटरैक्टिव कमांड लाइन की कुछ अजीब क्षैतिज स्क्रॉलिंग करता है, जो प्रतीत को फिर से लिखने लगता है और आउटपुट में अतिरिक्त ">" चिपकाता है। स्वाभाविक रूप से यह उम्मीद स्क्रिप्ट को भ्रमित करने और सिंक से बाहर होने का कारण बनता है जब कमांड निष्पादित करने के बाद आउटपुट में एक से अधिक संकेत होते हैं (मेरी स्क्रिप्ट में कई send
/expect
जोड़े शामिल हैं)।
मैंने दूरस्थ सिस्टम पर PS1
को "प्रॉम्प्ट>" जैसी कुछ विशिष्ट चीज़ों में बदलने की कोशिश की है, लेकिन एक समान समस्या उत्पन्न होती है जो मुझे इंगित करती है कि इसे हल करने का सही तरीका नहीं है।
जो मैं सोच रहा हूं वह मदद कर सकता है स्क्रिप्ट के लिए यह बताने की क्षमता है कि "मुझे पता है कि मैं इस बिंदु पर रिमोट सिस्टम के साथ ठीक से सिंक्रनाइज़ हूं, इसलिए अब इनपुट बफर को फ्लश करें।" expect
कथन में -notransfer
ध्वज है जो पैटर्न बफर को छोड़कर इनपुट बफर को छोड़ देता है, इसलिए मुझे लगता है कि मुझे इसके विपरीत की आवश्यकता है।
क्या कोई अन्य उपयोगी तकनीक है जिसका उपयोग मैं रिमोट शैल को अधिक अनुमानित तरीके से करने के लिए कर सकता हूं? मैं समझता हूं कि यह सुनिश्चित करने के लिए बहुत सारे काम चलते हैं कि उत्पन्न सत्र रिमोट सिस्टम पर इंटरैक्टिव होने के लिए दिखाई देता है, लेकिन मुझे लगता है कि कुछ अधिक परेशान करने वाली इंटरैक्टिव विशेषताएं (जैसे ksh
की क्षैतिज स्क्रॉलिंग) बंद कर दिया जाना चाहिए।
बढ़िया, ऐसा लगता है कि मुझे बस इतना ही चाहिए। –