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


85

मैं बैश से zsh में जाने की कोशिश कर रहा हूं।

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

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


19
इस zsh-hater आपको निराश न होने दें। ज़श महान है!
जेरेमी कैंटरेल

जवाबों:


109

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

मैं जिस अनुकूलन का उपयोग कर रहा हूं, वह सामान्य उपनाम और कार्य डाल रहा है .profileऔर मैन्युअल रूप से उन्हें निम्न प्रकार से सोर्स कर रहा है:

इन ~/.bashrc:

source ~/.profile

इन ~/.zshrc:

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

emulateएक zsh बिल्ड कमांड है। एकल तर्क के साथ निर्धारित शेल को अधिक से अधिक अनुकरण करने के लिए zsh विकल्प सेट करें।


2
हां, मुझे लगता है कि यह सबसे अच्छा तरीका है। आपके उत्तर के लिए धन्यवाद!
लेओ लेपोल्ड हर्ट्ज '24

उपरोक्त उत्तर मेरे लिए भी ठीक काम कर रहा है। लेकिन मुझे हर बार zshrc टर्मिनल खोलने के लिए ऐसा करना पड़ता है। क्या आप मुझे बता सकते हैं कि इसे कैसे ठीक किया जाए।
thedudecodes

32

आप अपने को " निर्यात " नहीं कर सकते । एक फाइल है जो कमांड चलाता है । एक फाइल है जो कमांड चलाता है ।.bashrc.zshrc.bashrcbash.zshrczsh

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

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

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

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

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


स्टैड को देखें "मैंने अपने .bashrc को सीधे अपने .zshrc पर रख दिया, और जब मैंने बैश को फिर से इस्तेमाल करने की कोशिश की तो इसमें बहुत सारी त्रुटियाँ थीं।" अब एक पल के लिए सोचें कि क्या कारण होगा ... और फिर अपनी पोस्ट को फिर से बनाएँ।
ओजब्लैस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.