2009-04-19 4 views
40

मैं बैश से zsh में जाने की कोशिश कर रहा हूं।आप अपने .bashrc को .zshrc पर कैसे निर्यात कर सकते हैं?

मैंने अपना .bashrc सीधे मेरे .zshrc पर रखा, और जब मैंने बैश का फिर से उपयोग करने का प्रयास किया तो बहुत सारी त्रुटियां हुईं।

आप अपने .bashrc को .zshrc पर कैसे निर्यात कर सकते हैं?

+12

इस zsh-hater आपको नीचे जाने मत देना। ज़श महान है! –

उत्तर

47

जबकि लुननाथ के उत्तर ने मुझे सही दिशा में धक्का दिया, zsh स्वचालित रूप से .profile स्रोत प्रतीत नहीं होता है। इस विषय पर बहुत अच्छी जानकारी this superuser post पर मिल सकती है।

रूपांतरण मैं उपयोग कर रहा हूँ .profile में आम उपनाम और कार्यों डालने और उन्हें मैन्युअल रूप से सोर्सिंग इस प्रकार है:

.bashrc

source ~/.profile

.zshrc

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

+1

हां, मुझे लगता है कि यह सबसे अच्छा तरीका है। आपके उत्तर के लिए धन्यवाद! –

21

आप कर सकते हैं नहीं "निर्यात" अपने .bashrc एक .zshrc करने के लिए। .bashrc एक ऐसी फ़ाइल है जो bash आदेश चलाती है। .zshrc एक ऐसी फ़ाइल है जो zsh आदेश चलाती है।

आप zsh अपने .bashrc में bash आदेशों को चलाने के लिए सक्षम होने की उम्मीद नहीं कर सकते, तो आप इसे एक नया .zshrc में तब्दील करना चाहिए बजाय बाद में .zshrc से .bashrc भागने की कोशिश कर या पूर्व कॉपी करने का।

यदि आप अपने सभी गोले के लिए एक सामान्य खोल प्रारंभिक फ़ाइल चाहते हैं; .profile का उपयोग करें (और .bashrc और .zshrc हटाएं)। यह सभी POSIX गोले द्वारा sourced है। और वहां, POSIX खोल सुविधाओं से चिपके रहें केवल। फिर वह कोड किसी भी POSIX खोल में चलाएगा। (हालांकि, मैं 100% निश्चित नहीं हूं कि zsh पॉज़िक्स अनुपालन है)।

देखें: http://mywiki.wooledge.org/DotFiles

हालांकि - और मैं पहले आपके प्रश्न के इस हिस्से को गलत तरीके से पढ़ता हूं - आपको से त्रुटियों का अनुभव नहीं करना चाहिए जब तक कि आप आदेशों को तब तक नहीं डालते। क्या तुमने किया? आपको क्या त्रुटियां मिल रही हैं? मुझे लगता है जैसे आपने कोड को .bashrc और bash (स्पष्ट रूप से) में समझा है।

एक तरफ के रूप में, ojblass पोर्टेबिलिटी का एक बिंदु बनाने की कोशिश करता है जो केवल आंशिक रूप से सफल होता है। zsh एक महान खोल है (हालांकि मुझे सम्मान नहीं मिला है), लेकिन स्क्रिप्ट लिखते समय; मैं आपको इसके बजाय #!/usr/bin/env bash के साथ ऐसा करने की सलाह दूंगा। पोर्टेबिलिटी के लिए ज्यादातर अपने आप (और अंततः, जिन लोगों के साथ आप साझा करते हैं) के लिए।

+0

इस बात को देखें कि "मैंने अपना .bashrc सीधे मेरे .zshrc पर रखा है, और जब मैंने बैश का फिर से उपयोग करने का प्रयास किया तो बहुत सारी त्रुटियां हुईं।" अब एक पल के लिए सोचें कि इसका कारण क्या होगा ... और फिर अपनी पोस्ट को दोबारा बताएं। – ojblass

+0

@ojblass: काफी सही; सवाल गलत तरीके से पढ़ें। – lhunath

संबंधित मुद्दे

 संबंधित मुद्दे