टर्मिनल में एक रूबी स्क्रिप्ट को कैसे निष्पादित करें?


231

मैंने वह सब कुछ सेट किया है जो मुझे अपने मैक (रूबी, रेल्स, होमब्रे, गिट, आदि) पर चाहिए, और मैंने एक छोटा प्रोग्राम भी लिखा है। अब, मैं इसे टर्मिनल में कैसे निष्पादित करूं? मैंने Redcar में प्रोग्राम लिखा और इसे .rb के रूप में सहेजा, लेकिन मुझे नहीं पता कि इसे टर्मिनल के माध्यम से कैसे निष्पादित किया जाए। मैं कार्यक्रम चलाना चाहता हूं और देखना चाहता हूं कि क्या यह वास्तव में काम करता है। मैं यह कैसे करु?


54
मैं नहीं जानता कि किसने आपके पहले प्रश्न पर वोट दिया, लेकिन मुझे लगता है कि यह कठोर है इसलिए मैंने इसे वापस वोट दिया है। सब कुछ के साथ गुड लक, यह सब पहली बार में इतना भ्रमित लगता है, लेकिन लंबे समय से पहले और यह दूसरी प्रकृति होगी, और फिर आप यहां अन्य लोगों की मदद करेंगे।

11
2017 के लिए तेजी से आगे और अब ओपी के 2,555 अंक और 100 से अधिक बैज हैं। :)
डैनियल

जवाबों:


245

बस कॉल करना: ruby your_program.rb

या

  • के साथ अपना कार्यक्रम शुरू करें #!/usr/bin/env ruby,
  • अपनी फ़ाइल को चलाकर निष्पादन योग्य बनाएं chmod +x your_program.rb
  • और करो ./your_program.rb some_param

1
जब मैं माणिक को आपका_प्रोग्राम.ब्रब कहता हूं, तो मुझे यह मिलता है: रूबी: ऐसी कोई फ़ाइल या निर्देशिका नहीं है - testapp.rb (लोडर्रर)
टॉम मैक्सवेल

1
@TomMaxwell जब वह कहता है ruby your_program.rb, तो आप 'your_program.rb' को जो भी नाम आपके प्रोग्राम का है, उसका विकल्प देना चाहिए। इस मामले में, आपकी त्रुटि संदेश के आधार पर, यह संभवतः माना जाता है ruby testapp.rb। हालाँकि @Robin सही है कि आपको उसी डायरेक्टरी में रूबी फ़ाइल के रूप में होना चाहिए।
जोशुआ गाल

2
मुझे लगता है कि उसने किया, अन्यथा त्रुटि संदेश testapp.rb के बारे में नहीं होगा। लेकिन उनकी अन्य टिप्पणियों के आधार पर, उन्हें नहीं पता था कि cdउनकी डेस्कटॉप निर्देशिका कैसे हो , इसलिए यह होना चाहिए।
रॉबिन

1
कैसे के बारे में अगर कुछ .rb फ़ाइल में आवश्यकता होती है?
जैकी

1
@ क्रिस पेज, मैं वास्तव में पहले रास्ते का उपयोग करके इस समस्या थी। मैंने आपके सुझाव के अनुसार मॉड बदल दिया और यह काम कर गया! अनेक अनेक धन्यवाद!
nstein

36

अपना टर्मिनल खोलें और फ़ोल्डर खोलें जहां फ़ाइल सहेजी गई है।
भूतपूर्व/home/User1/program/test.rb

  1. टर्मिनल खोलें
  2. cd /home/User1/program
  3. ruby test.rb

प्रारूप या परीक्षण

class Test 
  def initialize
   puts "I love India"
  end
end

# initialize object
Test.new

उत्पादन

I love India

2
Classहोना चाहिए class(कम सी के साथ )। अन्यथा यह काम नहीं करेगा।
डैनियल

24

मान लीजिए रूबी दुभाषिया आपके पेट में है (यह होना चाहिए), आप बस चलाते हैं

ruby your_file.rb

यह मुझे एक त्रुटि संदेश देता है, इसलिए मैं अनुमान लगा रहा हूं कि मैंने सेटअप के दौरान कुछ गलत किया है। मैं उसको कैसे करू?
टॉम मैक्सवेल

रूबी: ऐसी कोई फ़ाइल या निर्देशिका नहीं - testapp.rb (लोडर्र)
टॉम मैक्सवेल

क्या एक testapp.rb है? क्या आप उसी दिर में हैं जहाँ यह है?
सर्जियो तुलेंत्सेव

मुझे लगता है कि आपने मेरे पैट में होने वाले रूबी दुभाषिया के बारे में जो कहा है वह मुद्दा है। मैंने शायद कुछ सही ढंग से नहीं किया; यह सब कुछ सेट करने के लिए मुझे बहुत गड़बड़ कर रहा था।
टॉम मैक्सवेल

2
cdएक टर्मिनल कमांड है जो वर्तमान निर्देशिका को बदलता है। उदाहरण के लिए, एक "डेस्कटॉप" dir पर जाने के लिए जो आपके HOME_DIR में है, आपको करना होगा cd ~/Desktop
सर्जियो तुलन्त्सेव

15

रूबी फ़ाइल उपयोग को कॉल करने के लिए: ruby your_program.rb

स्क्रिप्ट के रूप में अपनी रूबी फ़ाइल निष्पादित करने के लिए:

  1. के साथ अपना कार्यक्रम शुरू करें #!/usr/bin/env ruby

  2. उस स्क्रिप्ट का उपयोग करके चलाएं ./your_program.rb param

  3. यदि आप इस स्क्रिप्ट को फ़ाइल के लिए अनुमतियों की जाँच करने में सक्षम नहीं हैं।

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

4

बस ruby XXXXX.rbटर्मिनल में आह्वान करें , अगर दुभाषिया आपके $ पैट चर में है।

(यह शायद ही एक रेल की चीज हो सकती है, जब तक आपके पास यह चल रहा हो।)


2

हालाँकि इस प्रश्न का उत्तर देने में बहुत देर हो चुकी है, लेकिन फिर भी उन लोगों के लिए जो मेरी ही तरह एक ही समस्या का समाधान देखने के लिए यहां आए थे और उन्हें इस पृष्ठ पर संतोषजनक उत्तर नहीं मिला, इसका कारण यह है कि आपके पास आपकी फ़ाइल नहीं है .rb एक्सटेंशन के रूप में। आप शायद इसे सरल पाठ मोड में रखते हैं। मुझे विस्तार से बताएं पृष्ठ पर संपूर्ण समाधान बाँधते हुए, यहाँ आप जाते हैं (यह मानते हुए कि आप फ़ाइल नाम abbrb है या कम से कम आपने abb बनाया है):

टर्मिनल विंडो में टाइप करें:

cd ~/to/the/program/location
ruby abc.rb

और आप कर रहे हैं

यदि निम्न त्रुटि होती है

ruby: No such file or directory -- abc.rb (LoadError)

फिर उस डायरेक्टरी में जाएं जिसमें आपके पास abc फाइल है, इसे abc.rb के रूप में नाम बदलें gedit बंद करें और फाइल abc.rb को फिर से खोलें। आदेशों और सफलता का एक ही सेट लागू करें!


2

उन लोगों के लिए जिनके पास पुराने उत्तरों का समाधान नहीं है, मैं बस अपने कोड में बहुत पहले लाइन के रूप में अपना फ़ाइल नाम रखता हूं।

इस तरह

 #ruby_file_name_here.rb

 puts "hello world"

1

टर्मिनल खोलें

cd to/the/program/location
ruby program.rb

या #!/usr/bin/env rubyअपने पहले प्रोग्राम में जोड़ें (स्क्रिप्ट बताएं कि यह रूबी इंटरप्रेटर का उपयोग करके निष्पादित किया गया है)

टर्मिनल खोलें

cd to/the/program/location
chmod 777 program.rb
./program.rb

1

यदि कोई स्क्रिप्ट रीलों के वातावरण में स्क्रिप्ट चलाने का प्रयास कर रहा है, तो रेल पटरियों के माध्यम से स्क्रिप्ट को निष्पादित करने के लिए एक धावक प्रदान करता है

rails runner my_script.rb

अधिक विवरण यहां: https://guides.rubyonrails.org/command_line.html#rails-runner

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.