2011-08-03 12 views
7

मैं लिखने की कोशिश कर रहा हूं कि एक सुपर सरल बैश स्क्रिप्ट क्या होनी चाहिए। मूल रूप से वर्चुअल एनवी को सक्रिय करें और कार्यशील निर्देशिका में बदलने से पहले। एक कार्य मैं बहुत कम करता हूं और एक कमांड को condesing बस समझ में आता है।वर्चुअलएएनवी एक बैश स्क्रिप्ट से initilaized

मूल रूप से ...

#!/bin/bash 
source /usr/local/turbogears/pps_beta/bin/activate 
cd /usr/local/turbogears/pps_beta/src 

लेकिन जब यह यह सिर्फ खोल करने के लिए वापस उदासीनता और मैं अभी भी निर्देशिका मैं से स्क्रिप्ट चलाने में हूँ और पर्यावरण सक्रिय नहीं है चलाता है।

उत्तर

20

आपको केवल अपनी स्क्रिप्ट को स्रोत कमांड के साथ चलाने की आवश्यकता है। ऐसा इसलिए है क्योंकि सीडी कमांड उस शेल के लिए स्थानीय है जो इसे चलाता है। जब आप सीधे एक स्क्रिप्ट चलाते हैं, तो एक नया खोल निष्पादित किया जाता है जो स्क्रिप्ट के फ़ाइल के अंत तक पहुंचने पर समाप्त होता है। स्रोत कमांड का उपयोग करके आप शैल को सीधे स्क्रिप्ट के निर्देशों को निष्पादित करने के लिए कहते हैं।

+0

कौन, वैसे, कारण है कि आप "स्रोत" का उपयोग कर रहे अपनी खुद की लिपि में है। –

+0

बिल्कुल मुझे क्या चाहिए। जैसे ही टाइमर मर जाता है, उतना ही सही होगा। – Ominus

1

cd का मान वर्तमान स्क्रिप्ट के लिए स्थानीय है, जो तब होता है जब आप फ़ाइल के अंत से गिर जाते हैं।

जो आप करने की कोशिश कर रहे हैं वह "सुपर सरल" नहीं है क्योंकि आप इस व्यवहार को ओवरराइड करना चाहते हैं।

अपनी पसंद की प्रक्रिया के साथ वर्तमान प्रक्रिया को बदलने के लिए exec पर देखें।

एक इंटरैक्टिव बैश में आदेशों को खिलाने के लिए, --rcfile विकल्प देखें।

1

मुझे लगता है कि आप अपनी स्क्रिप्ट को गतिशील बनाना चाहते हैं, हालांकि, एक नई प्रणाली पर काम करते समय त्वरित सुधार के रूप में मैं उपनाम बना देता हूं।

यानी शुरू

env ~/proj/py1/

उर्फ ​​py1 = 'स्रोत पर' py1 'भंडार स्थान के साथ कम से ~/envs/py1/स्थित कहा जाता है ~/envs/py1/bin/सक्रिय करें; सीडी ~/proj/py1 /;

अंत यानी

अब आप CLI में कहीं से भी py1 टाइप करके अपने परियोजना और virtualenv पहुँच सकते हैं।

मुझे पता है कि यह आदर्श नहीं है, डीआरवाई का उल्लंघन करता है, और कई अन्य प्रोग्रामिंग अवधारणाओं का उल्लंघन करता है। यह आपके एनवी और परियोजना को चर सेट करने के बिना जल्दी से सुलभ होने का एक त्वरित और गंदा तरीका है।

1

मुझे पता है कि मैं यहां खेल के लिए देर हो चुकी हूं, लेकिन क्या मैं वर्चुअलएन्वापर का उपयोग करने का सुझाव दे सकता हूं? यह एक अच्छा बैश हुक प्रदान करता है जो वास्तव में आप जो चाहते हैं उसे करने के लिए प्रतीत होता है।

चेक बाहर इस ट्यूटोरियल: http://blog.fruiapps.com/2012/06/An-introductory-tutorial-to-python-virtualenv-and-virtualenvwrapper

+1

लिंक की समय सीमा समाप्त हो गई है – blissini

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