Terminal'de bir Ruby betiği nasıl çalıştırılır?


231

Mac'imde (Ruby, Rails, Homebrew, Git, vb.) İhtiyacım olan her şeyi ayarladım ve küçük bir program bile yazdım. Şimdi, onu Terminal'de nasıl yürütebilirim? Programı Redcar'da yazdım ve bir .rb olarak kaydettim, ancak Terminal aracılığıyla nasıl yürütüleceğini bilmiyorum. Programı çalıştırmak ve gerçekten işe yarayıp yaramadığını görmek istiyorum. Bunu nasıl yaparım?


54
İlk sorunuza kimin oy verdiğini bilmiyorum, ama bence bu çok zor, bu yüzden tekrar oy verdim. Her şeyde iyi şanslar, her şey başlangıçta çok kafa karıştırıcı görünüyor ama sebat ediyor ve çok geçmeden ikinci doğa olacak ve o zaman buradaki diğer insanlara yardım edeceksiniz.
Iain

11
2017'ye kadar hızlı bir şekilde ilerleyin ve şimdi OP'nin 2.555 puanı ve 100'den fazla rozeti var. :)
Daniel

Yanıtlar:


245

Sadece ara: ruby your_program.rb

veya

  • ile programınızı başlatın #!/usr/bin/env ruby,
  • çalıştırarak dosyanızı yürütülebilir yapın chmod +x your_program.rb
  • ve yap ./your_program.rb some_param

1
Ruby your_program.rb dediğimde, şunu elde ederim: ruby: Böyle bir dosya veya dizin yok - testapp.rb (LoadError)
Tom Maxwell

1
@TomMaxwell Dediğinde ruby your_program.rb, 'your_program.rb' yerine programınızın adı ne olursa olsun koymanız gerekir. Bu durumda, hata mesajınıza bağlı olarak, muhtemelen olması gerekir ruby testapp.rb. @Robin doğru olmasına rağmen Ruby dosyasıyla aynı dizinde olmanız gerekir.
Joshua Cheek

2
Sanırım yaptı, aksi takdirde hata mesajı testapp.rb ile ilgili olmaz. Ancak diğer yorumlarına dayanarak, cdMasaüstü dizinine nasıl gideceğini bilmiyordu , bu yüzden olmalı.
Robin

1
.rb dosyasında bazı gereksinimler varsa nasıl olur?
Jacky

1
@Chris Page, aslında ilk yolu kullanarak bu sorunu yaşadım. Önerdiğin gibi mod değiştirdim ve işe yaradı! Bir ton teşekkürler!
nstein

36

Terminalinizi açın ve dosyanın kaydedildiği klasörü açın.
eski/home/User1/program/test.rb

  1. Terminali aç
  2. cd /home/User1/program
  3. ruby test.rb

biçim veya test.rb

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

# initialize object
Test.new

çıktı

I love India

2
Classolmalıdır class(düşük c ile ). Aksi takdirde çalışmaz.
DanielH

24

Yakut yorumlayıcının PATH'nizde olduğunu varsayalım (olması gerekir),

ruby your_file.rb

Bu bana bir hata mesajı veriyor, bu yüzden kurulum sırasında yanlış bir şey yaptığımı tahmin ediyorum. Bunu nasıl yaparım?
Tom Maxwell

ruby: Böyle bir dosya veya dizin yok - testapp.rb (LoadError)
Tom Maxwell

testapp.rb dosyası nedir? Aynı yerde misin?
Sergio Tulentsev

Bence PATH'ımda yakut tercüman hakkında söyledikleriniz sorun. Muhtemelen doğru bir şey yapmadım; herşeyi kurmak beni çok karıştırdı.
Tom Maxwell

2
cdgeçerli dizini değiştiren bir terminal komutudur. Örneğin, HOME_DIR'nizdeki bir "Masaüstü" dizinine gitmek için yapmanız gerekir cd ~/Desktop.
Sergio Tulentsev

15

Ruby dosyasını kullanmak için: ruby your_program.rb

Ruby dosyanızı komut dosyası olarak yürütmek için:

  1. ile programı başlat #!/usr/bin/env ruby

  2. komut dosyasını kullanarak çalıştır ./your_program.rb param

  3. Bu komut dosyasını yürütemiyorsanız dosya izinlerini denetleyin.

Genellikle bir komut dosyasını yürütmek için yürütme izni vermeniz gerekir. Bu verilmezse yukarıdaki komutla çalışmaz. İzinlerinizi kontrol edin ve ardından aynı komutu kullanın.
Priti Biyani

4

ruby XXXXX.rbTercüman $ PATH değişkeninizdeyse terminalde çağırmanız yeterlidir.

(bu, çalışana kadar raylı bir şey olmayabilir.)


2

Bu soruyu cevaplamak için çok geç olmasına rağmen, yine de buraya benim gibi aynı sorunun çözümünü görmeye gelen ve bu sayfada tatmin edici bir cevap alamayan çocuklar için, bunun nedeni dosyanızın olmamasıdır. .rb uzantısı şeklinde. Büyük olasılıkla basit metin modundasınız. Açıklayayım. Sayfadaki tüm çözümü bağlamak, işte gidiyorsunuz (dosya adınızın abc.rb olduğunu veya en azından abc oluşturduğunuzu varsayarak):

Terminal penceresini yazın:

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

ve sen bittin

Aşağıdaki hata oluşursa

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

Sonra abc dosyanızın bulunduğu dizine gidin, abc.rb olarak yeniden adlandırın. Gedit'i kapatın ve abc.rb dosyasını yeniden açın. Aynı komutları ve başarıyı uygulayın!


2

Eski cevaplar için bir çözüm alamayanlar için, sadece kodumu ilk satır olarak dosya adımı koymak.

böyle

 #ruby_file_name_here.rb

 puts "hello world"

1

Terminali Aç

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

veya ekle #!/usr/bin/env ruby programınızın ilkini (script, bunun Ruby Interpreter kullanılarak yürütüldüğünü söyler)

Terminali Aç

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.