Zsh से बैश का उपयोग करके एक शेल स्क्रिप्ट को 'सोर्स' कैसे करें?


14

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

Zsh इन फ़ाइलों को स्रोत नहीं कर सकता है, और यदि मैं जारी करने की कोशिश करता हूं emulate bash हर बार जब मैंने अंतरिक्ष मारा (मैं ओह-माय-ज़श का उपयोग कर रहा हूं, तो शायद यह एक कारण है?)।

url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*

क्या मेरे लिए इन फ़ाइलों का मूल्यांकन करने के लिए बैश पर स्विच न करने, या बैश इंस्टीट्यूशन को इंट्रोड्यूस करने और नए वातावरण चर / फ़ंक्शंस को आयात करने के लिए एक तरीका है जो मेरे ज़ीश सत्र में सोर्सिंग के दौरान परिभाषित किया गया है? या मुझे हर बार मुझे एंड्रॉइड पर काम करने की आवश्यकता के लिए स्विच करने के लिए बर्बाद किया जाता है?

संपादित करें : मेरे ही सवाल का जवाब मिल गया। किसी अन्य शेल का उपयोग करके किसी फ़ाइल को सोर्स करना संभव नहीं लगता है, लेकिन एंड्रॉइड मैक्रो फ़ाइलों के विफल होने की स्थिति में, यह पेज एक फिक्स लाया:

http://nilvec.com/building-cyanogen-from-source/

असल में, बस सेटिंग unsetopt nomatch बेजोड़ वाइल्डकार्ड के बारे में शिकायत करना बंद करने के लिए zsh पूछेंगे, जो स्क्रिप्ट को पूरा करने के लिए पर्याप्त है। के उपयोग के बारे में अभी भी एक त्रुटि शेष है complete एक एंड्रॉइड मैक्रो में पूर्ण क्षमताओं को जोड़ने के लिए आंतरिक कमांड को बैश करें, लेकिन यह बिल्कुल महत्वपूर्ण नहीं है।

जवाबों:


4

आप अपने संकलन कमांडलाइन को बैश स्क्रिप्ट में रख सकते हैं, जो संकलन स्क्रिप्ट को संकलित करने वाले कमांड को निष्पादित करते हैं।

कुछ इस तरह

    #!/bin/bash
    . /path/to/environmentscript
    . /path/to/morefunctionsscript

    compile_command

फिर आह्वान करने के बजाय compile_command हाथ से, आप बस अपनी नई बैश स्क्रिप्ट का आह्वान करें।


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