मैंने कभी भी एक को चुनने की कोशिश की है, शुद्ध तुलना में zsh बनाम बैश और मछली बनाम बैश के लिए हैं। लेकिन, मुझे zsh बनाम मछली के लिए कोई तुलना नहीं मिली। मैं सी और सी ++ में प्रोग्राम, हैलो-वर्ल्ड प्रकारों के अलावा, कभी भी कोई प्रमुख स्क्रिप्टिंग नहीं किया। लेकिन अब पाइथन और शेल स्क्रिप्ट पर मेरे हाथों की कोशिश कर रहा है। कौन सा खोल उत्पादकता के मामले में पहले और फिर विकास के मामले में अधिक रस रखता है? या अंत में, किसी भी खोल की शक्ति और उपयोगिता इसकी _rc फ़ाइलों पर आती है। तो क्या मैं बैश के साथ काफी अच्छा हूँ?सिफारिश - Zsh बनाम FishShell। स्क्रिप्टिंग, उत्पादकता और पावरुसर perse
उत्तर
ऐतिहासिक वहाँ सी गोले (CSH और tcsh) और बैश के बीच तरह की एक लौ बर्तन था। सीएसएच वेरिएंट के खिलाफ शिकायत यह है कि वे स्क्रिप्टिंग के लिए बुरे हैं।
सालों में मैं एक सीएलआई जुंकी रहा हूं, मेरे पास कभी कोई स्टैंडअलोन स्क्रिप्ट नहीं किया गया है जहां स्क्रिप्टिंग भाषा चुनी गई थी क्योंकि यही मेरा खोल था।
मैं स्क्रिप्ट की एक किस्म है कि मोटे तौर पर दो श्रेणियों में विभाजित किया जा सकता है लिखा है:
- उन है कि मेरे आदेश पंक्ति उत्पादकता
- वे जो सीधे मेरे आदेश पंक्ति उत्पादकता से संबंधित नहीं हैं मदद करते हैं।
श्रेणी 1 में लिपियों को लगभग हमेशा मेरी शैल स्क्रिप्टिंग भाषा में लिखा जाता है (अक्सर कार्यों के रूप में मैं जेडएसएच का उपयोग कर रहा हूं और पहले बीएसएएच का समर्थन कर रहा था, दोनों समर्थन कार्यों)।
श्रेणी 2 में लिपियों को जो भी सबसे कुशल (दोनों विकास समय और चलने वाले समय पर विचार किया जाता है) में लिखा गया है। मैं अक्सर पर्ल, सी (संकलित, स्पष्ट रूप से), बाश/जेडएसएच/एसएच या मैं जो भी चाहता हूं, में छोटी लिपियों को लिखता हूं। मैंने थोड़ा पाइथन स्क्रिप्टिंग किया है (लेकिन ज्यादा नहीं), और अवसर पर जावा का भी सहारा लेता है (संकलित-आश, फिर से)।
तो मैं किसके बारे में बात कर रहा हूं? अपनी स्टैंडअलोन स्क्रिप्टिंग क्षमताओं पर शेल की पसंद का आधार न लें। शेल के रूप में आपके उपयोगिता के लिए अपना खोल चुनें। आप जो कुछ भी चुनते हैं उसमें स्क्रिप्ट। आप शायद अपने खोल के रूप में बाश के साथ पर्याप्त अच्छे होंगे (हालांकि मुझे ज़ेडएचएच थोड़ा और पसंद है, **/* ग्लोबिंग अच्छा है और कुछ अन्य छोटी चीजें हैं, लेकिन ज़ेडएसएच के लिए मैंने जो लिपियों लिखी हैं, वे अपने बाश के समान हैं समकक्षों)।
पुन: '**/*' - आधुनिक (4.x) संस्करण बैश के संस्करण भी पुनरावर्ती ग्लोब का समर्थन करते हैं; 'दुकान-ग्लोबस्टार' देखें। जो चीज मेरे विचार में एक बड़ा अंतर है, वह अनजान विस्तार पर स्ट्रिंग-स्प्लिटिंग व्यवहार है; zsh यह सौहार्दपूर्ण तरीका करता है, जबकि बैश इसे पॉज़िक्स के साथ संगत करता है। यहां कोई भी पसंद करते हुए वैध अंतर के लिए निश्चित रूप से बहुत सी जगह है; व्यक्तिगत रूप से, मैं बीमार विचार-विमर्श लेकिन सर्वव्यापी मानक के अनुपालन के लिए जाता हूं। –
यदि आप zsh बनाम मछली के बीच कोई तुलना नहीं पा रहे हैं, तो उन्हें स्वयं से बाहर निकालें। यही एकमात्र तरीका है जिसे आप बता सकते हैं कि आप कौन सी पसंद करते हैं, कोई और आपको यह नहीं बता सकता है। इसके अलावा, उत्पादकता के अर्थ को परिभाषित करें। मेरे लिए, इसकी मॉड्यूल की बहुतायत और भाषा की आंतरिक क्षमताओं। यदि आपने पाइथन से शुरुआत की है, तो इसके लिए जाएं। गोले के लिए, आप इसकी आरसी स्क्रिप्ट और अन्य सिस्टम स्टफ इत्यादि को समझने के संबंध में इसके बारे में कम सीख सकते हैं (पूरी तरह से इसे भूल नहीं सकते हैं) इसके अलावा, पाइथन शेल करता है जो कर सकता है।
आप पहले से ही जानते हैं कि आप एक पर्यावरण में सबसे अधिक उत्पादक हो जाएगा। मैंने वर्षों से बैश का इस्तेमाल किया और यह ठीक है। यह completes almost everything, used with git, mercurial हो सकता है ...
* हर * खोल का उपयोग जीआईटी, मर्कुरियल, आदि के साथ किया जा सकता है :-) – Brian
मैं एक ही सवाल है और पाया था:
- पेज कि Unix Shells: Bash, Fish, Ksh, Tcsh, Zsh तुलना;
- Bash vs Zsh (vs Fish) एक रेडडिट धागा;
- What are the best Unix shells?
'इंटरैक्टिव उपयोग के लिए fish',' स्क्रिप्टिंग के लिए zsh' - अगर यह सिर्फ उन दोनों के बीच है। व्यक्तिगत रूप से, मुझे लगता है कि अच्छी आदतें फिर से रहना: POSIX sh अनुपालन बाश के साथ चिपकने के लिए पर्याप्त है, या ksh अगर मुझे प्रदर्शन के बारे में अधिक परवाह है। –
... ने कहा, यह सवाल स्पष्ट रूप से यहां नियमों के खिलाफ है; विशेष रूप से सिफारिश-ए-टूल अनुरोधों के लिए एक करीबी कारण है, * और * राय-केंद्रित प्रश्नों के लिए दूसरा। –
विभिन्न गोले की अच्छी तुलना - http://hyperpolyglot.org/unix-shells – valentt