टर्मिनल एमुलेटर लॉन्च करने का सबसे पोर्टेबल तरीका क्या है?


14

कहो कि मुझे एक स्क्रिप्ट लिखने की ज़रूरत है जो एक टर्मिनल लॉन्च करेगी और एक कमांड निष्पादित करेगी और मुझे विभिन्न प्रणालियों पर काम करने की आवश्यकता है। मैं इसे सुरक्षित और पोर्टेबल तरीके से कैसे कर सकता हूं?

है xtermहमेशा स्थापित? मुझे लगता है कि GUI वाले किसी भी * निक्स में कुछ टर्मिनल एमुलेटर होना चाहिए। मैं इसे कैसे प्राप्त कर सकता हूं? डेबियन सिस्टम है, x-terminal-emulator लेकिन यह, जाहिरा तौर पर, रेड हैट में भी काम नहीं करता है , अकेले गैर-लिनक्स * निक्स को दें।


इसके साथ उल्लेखनीय हो सकता हैexpect
लाल क्रिकेट

@RedCricket expect? कैसे? उपयोगकर्ता को अपने टर्मिनल में टाइप करने के लिए कहकर?
terdon

.. जिज्ञासु, आपको ऐसा करने की आवश्यकता क्यों होगी? शायद हम एक वैकल्पिक समाधान सुझा सकते हैं।
user606723

@ user606723 बुनियादी जिज्ञासा, अगर कोई ऐसी चीज है जो POSIX या opendesktop परिभाषित डिफ़ॉल्ट टर्मिनल एमुलेटर के रूप में है (ऐसा लगता है कि उत्तर नहीं है)। इस एसयू प्रश्न की प्रतिक्रिया के रूप में आया था ।
टेराडन

क्या आपको वास्तव में एक टर्मिनल एमुलेटर लॉन्च करने की आवश्यकता है, या क्या आपको वास्तव में केवल एक शेल प्राप्त करने की आवश्यकता है। यह काफी अलग जरूरत है।
लायन रयान

जवाबों:


10

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

मुझे लगता है कि आपका सर्वश्रेष्ठ दांव शायद कुछ अलग टर्मिनलों के होने की जाँच करने के लिए है (जैसे कि, xdg-terminal, x-terminal-emulator, gnome-terminal, konsole, xterm)। और शायद xDg- टर्मिनल को वास्तव में FreeDesktop.org मानकों में शामिल करने की दिशा में काम करते हैं।

फिर आपको पता चलेगा कि अलग-अलग टर्मिनलों में कमांड चलाने के अलग-अलग तरीके हैं, और कभी-कभी एक ही टर्मिनल के विभिन्न संस्करण भी हैं ... उदाहरण के लिए, डेबियन बग # 648271 देखें

आपको संभवतः व्यवस्थापक / उपयोगकर्ता को कस्टम कमांड सेट करने का एक तरीका भी देना चाहिए। इसकी जरूरत जरूर पड़ेगी।


हाँ, यह एसयू पर एक सवाल से प्रेरित था और मुझे उम्मीद थी कि caseबयानों के एक समूह की तुलना में एक सरल तरीका होगा ।
terdon

1
@terdon मुझे लगता है कि सरल तरीका स्क्रिप्ट के लिए आवश्यकता के रूप में एक काफी हद तक निर्भरता-प्रकाश टर्मिनल को सूचीबद्ध करना होगा, फिर बस इसका उपयोग करें।
derobert

उस टर्मिनल विंडो के बारे में कैसे, जो मेरे चलने पर दिखाई देती थी xinit? वर्षों में ऐसा नहीं किया गया था, लेकिन यह एक खाली xterm(?) विंडो के साथ एक साधारण एक्स सर्वर को लोड करने के लिए उपयोग किया जाता था जिससे आप अपना सत्र शुरू कर सकते थे। क्या इसका मतलब यह नहीं है कि कुछ टर्मिनल एमुलेटर एक्स के साथ स्थापित है?
terdon

@terdon यह हुआ करता था, लेकिन तब Xorg लोग X को पैकेज के एक समूह में विभाजित कर देते थे। (वह टर्मिनल शायद xterm था)। लेकिन एक त्वरित जांच से पता चलता है कि अगर मैं चाहता तो मैं अपने सिस्टम से xterm निकाल सकता था।
derobert

@terdon यह xterm, पारंपरिक "डिफ़ॉल्ट" X टर्मिनल एमुलेटर है। लेकिन यह हमेशा स्थापित नहीं हो सकता है। IIRC डिफॉल्ट उबंटू इंस्टॉलेशन में केवल गनोम-टर्मिनल शामिल है, xterm नहीं (और कुबंटु के लिए यह कोनोसोल होगा, आदि)।
गिलेस एसओ- बुराई को रोकना '

3

हाँ, आपको एक आवरण का उपयोग करने की आवश्यकता है। आई 3 WM के साथ एक अच्छा एक शामिल है। यहां बताया गया है: http://build.i3wm.org/docs/i3-sensible-terminal.html

बस इसे अपनी स्क्रिप्ट में शेल फ़ंक्शन में कॉपी करें: http://code.stapelberg.de/git/i3/tree/i3-sensible-terminal


यही कारण है कि एक अच्छी शुरुआत (+1) लेकिन केवल चेक के टर्मिनलों की एक सीमित संख्या (और उपयोग करता है whichजो एक है बुरा विचार )
terdon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.