ターミナルでRubyスクリプトを実行する方法は?


231

Macに必要なすべてのもの(Ruby、Rails、Homebrew、Gitなど)を設定し、小さなプログラムも作成しました。さて、ターミナルでそれをどのように実行しますか?Redcarでプログラムを作成して.rbとして保存しましたが、ターミナルから実行する方法がわかりません。プログラムを実行して、実際に機能するかどうかを確認したいと思います。どうすればよいですか?


54
最初の質問に誰が反対票を投じたのかはわかりませんが、それは厳しいと思うので、再度投票しました。すべてがうまくいけば、最初はとても混乱しているように見えますが、辛抱強く、やがてそれは第二の性質になり、それからここで他の人々を助けます。
2012年

11
2017年に早送りすると、OPには2,555ポイントと100を超えるバッジが付与されます。:)
Daniel

回答:


245

ただ電話する: ruby your_program.rb

または

  • プログラムを#!/usr/bin/env ruby
  • 実行してファイルを実行可能にします chmod +x your_program.rb
  • そして、やります ./your_program.rb some_param

1
ruby your_program.rbを呼び出すと、次のようになります。ruby:そのようなファイルやディレクトリはありません-testapp.rb(LoadError)
Tom Maxwell

1
@TomMaxwell彼が言ったときruby your_program.rb、あなたは 'your_program.rb'をあなたのプログラムの名前で何にでも置き換えることになっています。この場合、エラーメッセージに基づいて、おそらくであると考えられますruby testapp.rb。@Robinは正しいのですが、Rubyファイルと同じディレクトリにいる必要があります。
Joshua Cheek、2012年

2
私は彼がそうしたと思います、そうでなければエラーメッセージはtestapp.rbについてではないでしょう。しかし、他のコメントに基づいて、彼はcd自分のデスクトップディレクトリへのアクセス方法を知りませんでした。
Robin

1
.rbファイルに必要なものがあればどうですか?
ジャッキー、2015

1
@Chris Page、私は実際に最初の方法を使用してこの問題を抱えていました。私はあなたが提案したようにmodを変更し、それはうまくいきました!トンありがとう!
nstein 2015年

36

端末を開き、ファイルが保存されているフォルダーを開きます。
/home/User1/program/test.rb

  1. オープンターミナル
  2. cd /home/User1/program
  3. ruby test.rb

formatまたはtest.rb

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

# initialize object
Test.new

出力

I love India

2
Classclasscが小さい)である必要があります。それ以外の場合は機能しません。
DanielH 2017年

24

RubyインタープリターがPATHにあると想定します(あるはずです)、単に実行するだけです

ruby your_file.rb

エラーメッセージが表示されるので、セットアップ中に何か問題があったと思います。それ、どうやったら出来るの?
Tom Maxwell

ruby:そのようなファイルやディレクトリはありません-testapp.rb(LoadError)
Tom Maxwell

testapp.rbとは何ですか?あなたはそれと同じディレクトリにいますか?
Sergio Tulentsev、2012年

私のPATHにルビーインタープリターがあることについてあなたが言ったことは問題だと思います。私はおそらく何かを正しくしなかったでしょう。すべてをセットアップするのにかなりの手間がかかりました。
トムマックスウェル

2
cd現在のディレクトリを変更する端末コマンドです。たとえば、HOME_DIRにある「デスクトップ」ディレクトリに移動するには、を実行する必要がありますcd ~/Desktop
Sergio Tulentsev、2012年

15

ルビファイルを呼び出すには次を使用します: ruby your_program.rb

rubyファイルをスクリプトとして実行するには:

  1. プログラムを始める #!/usr/bin/env ruby

  2. 使用してそのスクリプトを実行する ./your_program.rb param

  3. このスクリプトを実行できない場合は、ファイルの権限を確認してください。

通常、スクリプトを実行するには、実行権限を付与する必要があります。それが指定されていない場合、上記のコマンドでは機能しません。権限を確認してから、同じコマンドを使用してください。
Priti Biyani 2017年

4

ruby XXXXX.rbインタプリタが$ PATH変数にある場合は、ターミナルで呼び出すだけです。

(これが実行されるまで、これはほとんどレールのことではありません。)


2

この質問に答えるには遅すぎますが、私のように同じ問題の解決策を見るためにここに来て、このページで満足のいく答えが得られなかった人にとっては、理由はあなたがファイルを持っていないことです.rb拡張子の形式。あなたはおそらくそれを単純なテキストモードで持っています。詳しく説明しましょう。ページ上のソリューション全体をバインドします、ここに行きます(ファイル名がabc.rbであるか、少なくともabcを作成したと想定しています)。

端末ウィンドウに入力します。

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、プログラムの最初に追加します(スクリプトは、これがRubyインタープリターを使用して実行されることを伝えます)

オープンターミナル

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.