मुझे किस शेल का उपयोग करना चाहिए - tshsh बनाम bash? [बन्द है]


30

मैं tcshलंबे समय से उपयोग कर रहा हूं । लेकिन जब भी मैं किसी चीज की खोज कर रहा होता हूं, तो मैं अक्सर पाता हूं कि निर्दिष्ट तरीके bashविशिष्ट हैं। यहां तक ​​कि शेल स्क्रिप्ट के लिए सिंटैक्स दोनों के लिए अलग है।

मैंने इंटरनेट पर जो कुछ भी खोज और सीखने का अनुभव bashकिया है, उससे अधिक सामान्य शेल का उपयोग होता है। यहां तक ​​कि टैग की गई इस साइट पर प्रश्नों bashकी संख्या टैग किए गए प्रश्नों की संख्या की तुलना में अधिक (वर्तमान में पांच गुना अधिक) है tcsh

इसलिए, मैं सोच रहा हूं कि क्या मुझे बैश पर जाना चाहिए। तुम क्या सोचते हो?

मुझे क्यों रहना चाहिए tcshया मुझे क्यों चलना चाहिए bash?


3
मुझे नहीं लगता कि मैंने कभी किसी को बैश करने के बारे में सुना है ; सामान्य रूप से लोगों बैश उपयोग करें, क्योंकि यह डिफ़ॉल्ट है और फिर बेहतर कुछ करने के लिए स्विच :)
माइकल Mrozek

6
@ मिचेल: ठीक है, OS X ने संस्करण 10.3 में tsh से bash पर स्विच किया, ताकि लोगों द्वारा bash पर स्विच करने का एक मामला हो।
sepp2k

5
आप का उपयोग करना चाहिए zsh(जो OS X को स्विच किया जाना चाहिए)
xenoterracide

6
लेकिन dashजो कुछ भी बस के बारे में काम करना चाहिए के लिए अपनी स्क्रिप्ट लिखें ।
xenoterracide

2
मुझे यह कुछ मनोरंजक लग रहा है कि हर कोई सुझाव दे रहा है zsh। एक ही समय में यह मनोरंजक नहीं है क्योंकि यह वास्तव में ऑप्स सवाल का जवाब नहीं देता है। यही कारण है कि मैं एक टिप्पणी नहीं एक जवाब एक प्रतिक्रिया के अपने zsh बनाया है। सीधे ऊपर हालांकि, जब तक आप स्क्रिप्ट tcsh को शेल करने के तरीके सीखने में समस्या हो रही है, तब तक जो आप जानते हैं उसके साथ जाएं। यदि आपको tcshयहाँ पर अपनी समस्या पोस्ट करने में समस्या है। बस 'कारण स्विच मत करो । अधिक बैश पोस्ट हैं क्योंकि यह डिफ़ॉल्ट रूप से अधिक स्थानों पर स्थापित है, जो इसे बेहतर नहीं बनाता है।
xenoterracide

जवाबों:


22

बैश सीखने के बाद मुझे पता चलता है कि tcsh एक कदम पीछे की तरफ थोड़ा सा है। उदाहरण के लिए, मैं आसानी से bash में क्या कर सकता हूं मुझे tsh में ऐसा करना मुश्किल लग रहा है। Tcsh पर मेरा प्रश्न । इंटरनेट सपोर्ट और डॉक्यूमेंटेशन भी bash के लिए बहुत बेहतर है और tsh के लिए बहुत सीमित है। बैश पर ओ'रिली किताबों की संख्या बहुत अच्छी है लेकिन मुझे tsh के लिए ऐसा कुछ नहीं मिला है।


26

दरअसल, आपको आगे बढ़ना चाहिए zsh! यह अनिवार्य रूप पार्श्व-संगत है और यह के सभी उपयोगिता मिला है bashएक बड़ा विशाल की मदद करने के साथ awesomeness । यहां तक ​​कि एक पुस्तक भी है (हालांकि मैंने इसे पढ़ने के लिए चारों ओर नहीं देखा है)।

मैं करने के लिए स्वीकार करते हैं जाएगा एक कारण का उपयोग नहीं करने के लिए zshखत्म हो गया bashलेकिन जब तक आप लगातार कई नए प्रतिष्ठानों पर काम कर रहे हैं यह वास्तव में लागू नहीं होता। खासकर यदि आप सबसे महत्वपूर्ण अंतर के बारे में जानते हैं । हालांकि यह वास्तव में vimऔर के बीच के अंतर के समान है vi; आप भोले नहीं बनना चाहते, लेकिन व्यावहारिक रूप से यह कोई बड़ी बात नहीं है। यहां तक ​​कि कट्टर vimउपयोगकर्ता भी अपना रास्ता ढूंढ सकते हैं emacsऔर इसके विपरीत।


20

आपको पोसिक्स कंप्लेंट शेल http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html पर स्विच करना चाहिए , जैसे कि बैश, ksh, डैश, लेकिन zsh और निश्चित रूप से tcsh नहीं। यह लंबे समय से है क्योंकि csh को स्क्रिप्टिंग के लिए एक खराब विकल्प घोषित किया गया था: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ , tcsh उस क्षेत्र में उतना भिन्न नहीं है।

स्क्रिप्ट लिखते समय, सुनिश्चित करें कि यदि आप कुछ गैर पोर्टेबल में फिर से लॉक नहीं करना चाहते हैं तो पोसिक्स केवल निर्माण (यानी बशीश और पसंद से बचें) का उपयोग करें।


7

मुझे लगता है कि अनुकूलता की बात याद आ रही है। तुम सब कुछ डाल कर संगत बनाने के लिए प्रयास करते हैं तो #!/bin/shशीर्ष पर और का उपयोग कर .sh एक्सटेंशन है, लेकिन कुछ भी लेकिन पर कभी नहीं परीक्षण बैश आपको एक संगत स्क्रिप्ट इसकी गारंटी नहीं है! केवल उपयोग करने के लिए बेहतर #!/bin/bashऔर .bash ताकि उपयोगकर्ता वास्तव में वास्तविक आवश्यकता को जान सकें।

यदि आप जानते हैं zsh , tcsh , वरना से बेहतर कुछ bash , और इसके लिए एक अच्छा संदर्भ मैनुअल है, वापस पकड़ नहीं है । जैसे लोग कुछ स्क्रिप्ट चलाने में सक्षम होने के लिए पर्ल या अजगर स्थापित करने की उम्मीद करते हैं, वे आपके अस्पष्ट शेल को भी स्थापित करने में सक्षम हो सकते हैं! : डी


1
वास्तव में /bin/shटीसी-सीएचएस-व्युत्पन्न शेल के दौरान कोर्न-संगत शेल को इंगित करने की गारंटी नहीं है । यह संभावना है कि /bin/shपहले से ही बैश या अन्य संगत शेल को इंगित करता है और यह लगभग निश्चित है कि यह उपयोगकर्ता शेल को बदलने से प्रभावित नहीं होगा । csh और sh पूरी तरह से असंगत हैं।
मैकीज पीचोटका

1
मुझे यकीन नहीं है कि क्या गारंटी है। मुझे पता है कि "/ बिन / श" के लिए स्क्रिप्ट लिखने वाले बहुत सारे लोग हैं जो बैश-इस्म्स से भरे हुए हैं, जो बैश-के रूप में / बिन / श बर्दाश्त करता है, लेकिन जो भ्रमित करता है dash(डेबियन ashऔर बॉर्न संगत शेल)।
केविन कैंटू

एक अन्य बिंदु: #! / बिन / बैश आप का उपयोग करने वाले बैश के कौन से संस्करण को विवश नहीं करेंगे और एक संस्करण से दूसरे संस्करण में कुछ असंगतताएं हैं, हालांकि सबसे खराब v2 के साथ एक लंबे समय पहले पेश किए गए थे। मुझे POSIX संगतता मोड में संस्करणों के बीच किसी भी असंगतता का पता नहीं है।
चार्ल्स स्टीवर्ट

किसी को भी स्वतंत्र महसूस करना चाहिए कि वे जो भी खोलना चाहते हैं, और आप #!/bin/shअकेले -nePOSIX के संबंध में एक वैध बिंदु बनाएं । हालाँकि, POSIX अनुकूलता के बारे में चिंतित होने पर 'जुनूनी' लेबल का विचार नहीं होना चाहिए। shडेबियन / ubuntu के साथ डिफॉल्ट डैश को आमंत्रित करना , और अभी कुछ समय के लिए है। मुझे पता है कि 'गारंटीकृत' के रूप में अर्हता प्राप्त नहीं होगी, लेकिन शायद ही मैं किसी पोर्टेबिलिटी 'गारंटीकृत' पर विचार करूंगा। मैं एक 'शेल स्क्रिप्ट' के साथ और भी अधिक आरक्षित होगा।
जेएम बेकर

6

कौन सा खोल? सबसे अच्छा "आसानी से उपयोग" बनाम "झंझट" अनुपात के साथ एक के लिए जाओ ...

यदि आप अपने "मासेराती" शेल के लिए पर्याप्त सामान्य उदाहरण और स्पष्टीकरण नहीं पा सकते हैं, तो यह अतिरिक्त प्रदर्शन एक बोनस की तुलना में अधिक समस्या हो सकती है ...

मुझे यह लेख / साइट रोचक लगी; यह पढ़ने लायक हो सकता है:
UNIX शेल अंतर और अपने शेल को कैसे बदलें


0

zsh में bash की तुलना में tcsh में कुछ और समानताएं हैं।

देखें: http://zsh.sourceforge.net/FAQ/zshfaq02.html#l13

लोग अक्सर दावा करते हैं कि zsh ऐसे काम कर सकता है जो मार-पीट कर सकते हैं, लेकिन मुझे ऐसा नहीं लगा। क्या मैं है देखा कि zsh के लिए यह आसान है, में बनाया या डिफ़ॉल्ट रूप से चालू है, जबकि पार्टी में यह एक ऐड-ऑन स्क्रिप्ट है, चालू किया जाना है, या एक से अधिक मुश्किल है।

(अस्वीकरण: मैं एक बैश उपयोगकर्ता हूं जिसे कभी-कभी zsh पर स्विच करने पर विचार किया जाता है)


-3

कुछ प्रकार के कारणों के लिए, मैंने tcsh का उपयोग किया, जैसा कि मैंने 20 साल पहले किया था। जैसा कि मैं जानता हूं कि बैश की उत्पत्ति शश से होती है, लेकिन बहुत सीश सामान के साथ लेकिन टीश की उत्पत्ति शश से होती है। मैं वास्तव में शुरुआती दिनों में पूरा होने वाले कमांड को पसंद करता हूं लेकिन यह अब सबसे अधिक शेल में उपलब्ध है। स्क्रिप्टिंग के लिए, क्या हम / बिन / श से चिपके रहेंगे?


6
यह वास्तव में सवाल का जवाब देने का प्रयास नहीं करता है। यह एक टिप्पणी है।
स्लम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.