मैं जानना चाहता हूं कि मौजूदा टर्मिनल निर्देशिका को बदलना संभव है, जहां से मैं अपनी रूबी स्क्रिप्ट निष्पादित कर रहा हूं।रुबी स्क्रिप्ट से फ़ोल्डर में (टर्मिनल) सीडी कैसे करें
उदाहरण के लिए, यदि मैं टर्मिनल में $HOME
से स्क्रिप्ट निष्पादित कर रहा हूं, तो मैं स्क्रिप्ट के अंत में $HOME/mydir
में सीडी करना चाहता हूं।
मैंने कुछ चीजों की कोशिश की है, लेकिन मैं हमेशा उसी निर्देशक में खोज रहा हूं जहां लिपि शुरू हुई थी।
बातें मैं कोशिश की है:
Dir.chdir(mydir)
%[cd mydir]
वे वास्तव में निर्देशिका बदल सकता है, लेकिन केवल स्क्रिप्ट निष्पादन के सूत्र में। जब स्क्रिप्ट समाप्त होती है, टर्मिनल में मेरा वर्तमान स्थान अभी भी वही है जो मैं स्क्रिप्ट लॉन्च करने से पहले था।
मुझे SO में कुछ समान मिला है, लेकिन यह Python-related है और प्रतिक्रिया नकारात्मक लगती है।
आप पूछ सकते हैं क्यों?
मैं वर्तमान में एक कमांड लाइन एप्लिकेशन (gli
का उपयोग कर) में शामिल हूं, जो प्रारंभ बिंदु के रूप में, एक प्रोजेक्ट फ़ोल्डर की आवश्यकता है।
$ myfoo new project
कौन सा मौजूदा निर्देशिका में नाम project
के साथ एक नया फ़ोल्डर बनाता है: तो मेरा पहला आदेश की तरह दिखता है। अब अन्य आदेशों के साथ काम करने के लिए सक्षम होने के लिए मैं की जरूरत है:
$ cd project
project$ myfoo domore
तो मैं था बस यह सोच कर कि यह निष्पादित होने myfoo new project
के बाद project
में मेरी आत्म पाया करने के लिए अच्छा होगा।
जैसा कि मुझे डर था, यह इतना आसान नहीं है (बिल्कुल संभव नहीं है)। तो रूबीजम्स द्वारा जेनरेट की गई मानक फ़ाइल के स्थान पर, एक बाश स्क्रिप्ट का उपयोग करने के बारे में क्या है जो रूबी कॉल करता है? क्या यह व्यवहार्य है? क्या मैं मूर्ख हूँ? क्या मुझे eval
का उपयोग करना चाहिए?
उत्तर के लिए धन्यवाद। लेकिन मुझे डर है कि कोई भी स्वीकार्य नहीं है। शायद सवाल नहीं था :)।
ऐसा लगता है कि आप ऐसा करने में सक्षम होंगे। रूबी से कोई भी सिस्टम कॉल आपकी स्क्रिप्ट/खोल से अलग थ्रेड में काम करता है, और इसका वर्तमान स्थान पर कोई प्रभाव नहीं पड़ेगा। आप इसके लिए क्या उपयोग करने की उम्मीद कर रहे हैं? –
@ डगलस-एफ-शीयरर: मैंने जिज्ञासा से बाहर –
उत्तर में मेरे कारणों को थोड़ा बढ़ा दिया है, मेरा जवाब क्यों काम नहीं करता? मैंने इस तकनीक का दो बार उपयोग किया है, और मैं अस्पष्ट हूं कि यह आपकी स्थिति के अनुरूप नहीं है। – Ian