Bagaimana cara menjalankan skrip Ruby di Terminal?

231

Saya telah mengatur semua yang saya butuhkan di Mac saya (Ruby, Rails, Homebrew, Git, dll), dan saya bahkan telah menulis sebuah program kecil. Sekarang, bagaimana cara menjalankannya di Terminal? Saya menulis program di Redcar dan menyimpannya sebagai .rb, tapi saya tidak tahu bagaimana cara menjalankannya melalui Terminal. Saya ingin menjalankan program dan melihat apakah itu benar-benar berfungsi. Bagaimana saya melakukan ini?

Tom Maxwell
sumber
54
Saya tidak tahu siapa yang menolak pertanyaan pertama Anda, tetapi saya pikir itu kasar, jadi saya memilihnya kembali. Semoga beruntung dengan segalanya, pada awalnya semuanya tampak membingungkan tetapi bertahan dan tidak lama kemudian itu akan menjadi kebiasaan kedua, dan kemudian Anda akan membantu orang lain di sini.
iain
11
Maju cepat ke 2017 dan sekarang OP memiliki 2.555 poin dan lebih dari 100 lencana. :)
Daniel

Jawaban:

246

Panggil saja: ruby your_program.rb

atau

  • mulai program Anda dengan #!/usr/bin/env ruby,
  • membuat file Anda dapat dieksekusi dengan menjalankan chmod +x your_program.rb
  • dan lakukan ./your_program.rb some_param
Robin
sumber
1
Ketika saya memanggil ruby ​​your_program.rb, saya mendapatkan ini: ruby: Tidak ada file atau direktori seperti itu - testapp.rb (LoadError)
Tom Maxwell
1
@ TomMaxwell Ketika dia berkata ruby your_program.rb, Anda seharusnya mengganti 'your_program.rb' dengan apa pun nama program Anda. Dalam hal ini, berdasarkan pesan kesalahan Anda, mungkin seharusnya begitu ruby testapp.rb. Meskipun @Robin benar karena Anda harus berada di direktori yang sama dengan file Ruby.
Joshua Cheek
2
Saya pikir dia melakukannya, kalau tidak, pesan kesalahannya bukan tentang testapp.rb. Tetapi berdasarkan komentarnya yang lain, dia tidak tahu bagaimana caranya ke cddirektori Desktop-nya, jadi pasti begitu.
Robin
1
bagaimana kalau ada beberapa file .rb yang dibutuhkan?
Jacky
1
@ Chris Page, saya benar-benar mengalami masalah ini dengan menggunakan cara pertama. Saya mengubah mod seperti yang Anda sarankan dan itu berhasil! Terima kasih banyak!
nstein
36

Buka terminal Anda dan buka folder tempat file disimpan.
Ex/home/User1/program/test.rb

  1. Terminal terbuka
  2. cd /home/User1/program
  3. ruby test.rb

format atau test.rb

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

# initialize object
Test.new

keluaran

I love India
vijay
sumber
2
Classharus class(dengan c yang lebih rendah ). Kalau tidak, itu tidak akan berhasil.
DanielH
24

Dengan asumsi interpreter ruby ​​ada di PATH Anda (seharusnya), Anda cukup berlari

ruby your_file.rb
Sergio Tulentsev
sumber
Itu memberi saya pesan kesalahan, jadi saya kira saya melakukan sesuatu yang salah selama pengaturan. Bagaimana aku melakukan itu?
Tom Maxwell
ruby: Tidak ada file atau direktori seperti itu - testapp.rb (LoadError)
Tom Maxwell
apa itu testapp.rb? Apakah Anda berada di dir yang sama di mana itu?
Sergio Tulentsev
Saya pikir apa yang Anda katakan tentang penerjemah ruby ​​yang ada di PATH saya adalah masalahnya. Saya mungkin tidak melakukan sesuatu dengan benar; Aku butuh banyak urusan untuk mengatur semuanya.
Tom Maxwell
2
cdadalah perintah terminal yang mengubah direktori saat ini. Misalnya, untuk masuk ke direktori "Desktop" yang ada di HOME_DIR Anda, Anda harus melakukannya cd ~/Desktop.
Sergio Tulentsev
15

Untuk memanggil file ruby ​​gunakan: ruby your_program.rb

Untuk menjalankan file ruby ​​Anda sebagai skrip:

  1. memulai program Anda dengan #!/usr/bin/env ruby

  2. jalankan skrip itu menggunakan ./your_program.rb param

  3. Jika Anda tidak dapat menjalankan skrip ini, periksa izin untuk file.
Priti Biyani
sumber
Umumnya untuk mengeksekusi skrip, Anda harus memberikan izin mengeksekusi. Jika itu tidak diberikan, itu tidak akan berfungsi dengan perintah di atas. Periksa izin Anda dan kemudian gunakan perintah yang sama.
Priti Biyani
4

Hanya memanggil ruby XXXXX.rbterminal, jika penerjemahnya ada dalam variabel $ PATH Anda.

(Ini hampir tidak bisa menjadi hal rel, sampai Anda menjalankannya.)

Banyol
sumber
2

Meskipun sudah terlambat untuk menjawab pertanyaan ini, tetapi masih bagi orang-orang yang datang ke sini untuk melihat solusi dari masalah yang sama seperti saya dan tidak mendapatkan jawaban yang memuaskan pada halaman ini, alasannya adalah karena Anda tidak memiliki file Anda dalam bentuk ekstensi .rb. Kemungkinan besar Anda memilikinya dalam mode teks sederhana. Biarkan saya uraikan. Mengikat seluruh solusi pada halaman, begini (anggap nama file Anda abc.rb atau setidaknya Anda membuat abc):

Ketik jendela terminal:

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

dan kamu selesai

Jika kesalahan berikut terjadi

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

Lalu pergi ke direktori di mana Anda memiliki file abc, ganti namanya sebagai abc.rb Tutup gedit dan buka kembali file abc.rb. Terapkan serangkaian perintah dan kesuksesan yang sama!

jahat
sumber
2

Bagi mereka yang tidak mendapatkan solusi untuk jawaban yang lebih lama, saya cukup meletakkan nama file saya sebagai baris pertama dalam kode saya.

seperti itu

 #ruby_file_name_here.rb

 puts "hello world"
Gokigooooks
sumber
1

Buka Terminal

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

atau tambahkan #!/usr/bin/env rubyyang pertama dari program Anda (skrip memberitahu bahwa ini dijalankan menggunakan Ruby Interpreter)

Buka Terminal

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