Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

मैं Xonsh क्यों प्यार करता हूँ

शेल भाषाएं इंटरैक्टिव उपयोग के लिए उपयोगी हैं। लेकिन यह अनुकूलन अक्सर प्रोग्रामिंग भाषाओं के रूप में उपयोग करने के खिलाफ ट्रेड-ऑफ के साथ आता है, जिसे कभी-कभी शेल स्क्रिप्ट लिखते समय महसूस किया जाता है।

क्या होगा यदि आपका शेल अधिक स्केलेबल प्रोग्रामिंग भाषा को भी समझता है? कहो, पायथन?

Xonsh दर्ज करें।

Xonsh को स्थापित करना वर्चुअल वातावरण बनाने जितना आसान है, pip install xonsh[ptk,linux] चलाना , और फिर चल रहा है xonsh

सबसे पहले, आप सोच सकते हैं कि आपके पायथन शेल में एक अजीब संकेत क्यों है:

$ 1+1
2

अच्छा कैलकुलेटर!

$ print("hello world")
hello world

हम अन्य कार्यों को भी कॉल कर सकते हैं:

$ from antigravity import geohash
$ geohash(37.421542, -122.085589, b'2005-05-26-10458.68')
37.857713 -122.544543

हालांकि, हम अभी भी इसे नियमित शेल की तरह इस्तेमाल कर सकते हैं:

$ echo "hello world"
hello world

हम मिक्स एंड मैच भी कर सकते हैं!

$ for i in range(3):
.     echo "hello world"
.
hello world
hello world
hello world

Xonsh प्रॉम्प्ट टूलकिट का उपयोग करके शेल कमांड और पायथन एक्सप्रेशन दोनों के लिए पूर्णता का समर्थन करता है। पूर्णताएं दृष्टिगत रूप से सूचनात्मक होती हैं, संभावित पूर्णताएं दिखाती हैं और इन-बैंड ड्रॉपडाउन सूचियां होती हैं।

यह पर्यावरण पहुंच का भी समर्थन करता है। यह पर्यावरण चर के लिए पायथन प्रकारों को लागू करने के लिए एक सरल लेकिन शक्तिशाली अनुमानी का उपयोग करता है। डिफ़ॉल्ट "स्ट्रिंग" है, लेकिन, उदाहरण के लिए, पथ चर स्वचालित रूप से सूचियां हैं।

$PATH में
$ '/usr/bin' in $PATH
True

Xonsh शेल-शैली या पायथन-शैली के बूलियन शॉर्टकट ऑपरेटरों को स्वीकार करता है:

$ cat things
foo
$ grep -q foo things and echo "found"
found
$ grep -q bar things && echo "found"
$ grep -q foo things or echo "found"
$ grep -q bar things || echo "found"
found

इसका मतलब है कि पायथन कीवर्ड की व्याख्या की जाती है। यदि हम किसी प्रसिद्ध डॉ. सीस पुस्तक का शीर्षक प्रिंट करना चाहते हैं, तो हमें कीवर्ड उद्धृत करने होंगे।

$ echo green eggs "and" ham
green eggs and ham

यदि हम ऐसा नहीं करते हैं, तो हमें आश्चर्य होता है:

$ echo green eggs and ham
green eggs
xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = True
xonsh: subprocess mode: command not found: ham
Did you mean one of the following?
    as:   Command (/usr/bin/as)
    ht:   Command (/usr/bin/ht)
    mag:  Command (/usr/bin/mag)
    ar:   Command (/usr/bin/ar)
    nm:   Command (/usr/bin/nm)

आभासी वातावरण थोड़ा मुश्किल हो सकता है। नियमित वर्चुअल वातावरण, जैसा कि वे बैश-जैसे सिंटैक्स पर करते हैं, काम नहीं कर सकते। हालाँकि, Xonsh अपने स्वयं के आभासी पर्यावरण प्रबंधन प्रणाली के साथ आता है जिसे vox . कहा जाता है ।

vox ~/.virtualenvs . में वातावरण बना, सक्रिय और निष्क्रिय कर सकता है; यदि आपने virtualenvwrapper . का उपयोग किया है , यहीं पर परिवेश थे।

ध्यान दें कि वर्तमान सक्रिय परिवेश x . को प्रभावित नहीं करता है onsh . यह सक्रिय परिवेश से कुछ भी आयात नहीं कर सकता।

$ xontrib load vox
$ vox create my-environment                                                    
...
$ vox activate my-environment        
Activated "my-environment".                                                    
$ pip install money                                                            
...
$ python                                                              
...
>>> import money                                                              
>>> money.Money('3.14')                        
$ import money
xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = True
ModuleNotFoundError: No module named 'money'

पहली पंक्ति vox . को सक्षम करती है :यह एक xontrib है , Xonsh के लिए एक तृतीय-पक्ष एक्सटेंशन। xontrib प्रबंधक सभी संभव xontribs . को सूचीबद्ध कर सकता है और उनकी वर्तमान स्थिति (स्थापित, लोड, या न तो)।

xontrib write लिखना संभव है और बस इसे PyPi . पर अपलोड करें उपलब्ध कराने के। हालांकि, इसे xontrib . में जोड़ना अच्छा अभ्यास है index तो Xonsh इसके बारे में पहले से जानता है। यह, उदाहरण के लिए, कॉन्फ़िगरेशन विज़ार्ड को इसका सुझाव देने की अनुमति देता है।

यदि आपने कभी सोचा है, "क्या पायथन मेरा खोल हो सकता है?" तो आप केवल एक pip install xonsh . हैं पता लगाने से दूर।


  1. शीर्ष 5 कारण क्यों DevOps टीम Redis Enterprise को पसंद करती है

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

  1. Windows 10 बेकार क्यों है?

    विंडोज 10 ऑपरेटिंग सिस्टम विश्व प्रसिद्ध हैं, और उनके नियमित अपडेट उन्हें अद्वितीय और भरोसेमंद बनाते हैं। सभी ऐप्स और विजेट सही नहीं हैं लेकिन फिर भी बहुत उपयोगी हैं। हालाँकि, उनकी सेटिंग्स और सुविधाएँ बेहतर हो सकती हैं। हालाँकि Microsoft के पास दुनिया भर में लगभग 1.3 बिलियन विंडोज 10 उपयोगकर्ताओं क

  1. 10वां जन्मदिन मुबारक हो WhatsApp:यहां हम आपको प्यार क्यों करते हैं!

    हम सभी टेक्स्टिंग को लेकर जुनूनी हैं, है ना? यह हमारे स्मार्टफ़ोन पर सबसे मज़ेदार चीज़ों में से एक है। कोई फर्क नहीं पड़ता कि हम कहाँ हैं, हम यात्रा कर रहे हैं या भीड़ में घिरे हुए हैं, टेक्स्टिंग हमेशा हमें लगभग किसी भी स्थिति में बचाता है। और जब टेक्स्टिंग की बात आती है, तो व्हाट्सएप ही एकमात्र ऐस