"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में बाहरी कमांड इनपुट को स्वचालित कैसे करें: \"लॉगिन\" जैसे कमांड के लिए उपयोगकर्ता इंटरेक्शन को बायपास करने के लिए एक गाइड

गो में बाहरी कमांड इनपुट को स्वचालित कैसे करें: \"लॉगिन\" जैसे कमांड के लिए उपयोगकर्ता इंटरेक्शन को बायपास करने के लिए एक गाइड

2024-11-09 को प्रकाशित
ब्राउज़ करें:184

How to Automate External Command Input in Go:  A Guide to Bypassing User Interaction for Commands Like \

गो के लिए बाहरी कमांड इनपुट को स्वचालित करना

गो में, बाहरी कमांड निष्पादित करना और उनके इनपुट और आउटपुट को प्रबंधित करना एक सामान्य कार्य है। हालाँकि, उपयोगकर्ता इनपुट के लिए संकेत देने वाले कमांड, जैसे "लॉगिन" से निपटते समय, इन इनपुट को प्रोग्रामेटिक रूप से स्वचालित करना चुनौतीपूर्ण हो सकता है।

इस समस्या का एक तरीका सीधे कमांड के मानक इनपुट (stdin) पर लिखना है ) बाइट्स बफ़र का उपयोग करना। आइए प्रदान किए गए समाधान पर गौर करें:

login := exec.Command(cmd, "login")

var b bytes.Buffer
b.Write([]byte(username   "\n"   pwd   "\n"))

login.Stdout = os.Stdout
login.Stdin = &b
login.Stderr = os.Stderr

इस कोड में, हम b नामक एक बाइट्स.बफ़र बनाते हैं और उपयोगकर्ता नाम और पासवर्ड को न्यूलाइन्स के साथ जोड़ते हैं। इसके बाद हम लॉगिन कमांड के स्टडिन फ़ील्ड में बी असाइन करते हैं, बफर को कमांड के इनपुट स्ट्रीम से प्रभावी ढंग से जोड़ते हैं।

जब कमांड निष्पादित होता है, तो यह बी से वर्णों को तब तक पढ़ेगा जब तक कि यह एक नई लाइन का सामना नहीं करता है, इसे उपयोगकर्ता नाम के रूप में व्याख्या करता है। इसके बाद इसे पासवर्ड मानकर अगली नई लाइन तक पढ़ा जाएगा। इस तरह से बफ़र को मैन्युअल रूप से लिखकर, हम उपयोगकर्ता इंटरैक्शन की आवश्यकता को दरकिनार कर देते हैं और प्रोग्रामेटिक रूप से आवश्यक इनपुट प्रदान करते हैं।

याद रखें, stdin एक कैरेक्टर बफ़र है, और कमांड आमतौर पर इनपुट पढ़ते हैं जब तक कि वे नई लाइनों का सामना नहीं करते। यह तकनीक आपको बाहरी कमांडों को फीड करने से पहले इनपुट को बफर और अनुक्रमित करने की अनुमति देती है, जिससे मैन्युअल उपयोगकर्ता के हस्तक्षेप की आवश्यकता के बिना इनपुट प्रक्रिया स्वचालित हो जाती है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3