web-dev-qa-db-ja.com

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

私は自分のMac上で必要なものすべて(Ruby、Rails、Homebrew、Gitなど)を設定し、さらに小さなプログラムを書いた。さて、どうやってそれをTerminalで実行するのですか?私はRedcarでプログラムを書き、それを.rbとして保存しました、しかしTerminalを通してそれを実行する方法がわかりません。プログラムを実行して、それが実際に機能するかどうかを確認したいのです。どうやってこれをするの?

206
Tom Maxwell

ただ電話してください:Ruby your_program.rb

または

  • プログラムを#!/usr/bin/env Rubyで起動します。
  • chmod +x your_program.rbを実行してファイルを実行可能にする
  • そして./your_program.rb some_paramを実行
222
Robin

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

  1. ターミナルを開く
  2. cd /home/User1/program
  3. Ruby test.rb

フォーマットまたはtest.rb

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

# initialize object
Test.new

出力

I love India
29
vijay

RubyインタプリタがあなたのPATHにあるとしたら(それがあるはずです)、あなたは単に実行するだけです。

Ruby your_file.rb
21

Rubyファイルを呼び出すには:Ruby your_program.rb

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

  1. #!/usr/bin/env Rubyであなたのプログラムを始めてください

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

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

インタプリタがあなたの$ PATH変数にある場合は、端末でRuby XXXXX.rbを呼び出すだけです。

(これがRailsのものになることはほとんどありません、あなたがそれを実行させるまで)

4
Jokester

古い答えの解決策を得られない人のために、私は単に私のコードの一番最初の行として私のファイル名を入れます。

そのようです

 #Ruby_file_name_here.rb

 puts "hello world"
2
Gokigooooks

この質問に答えるには遅すぎますが、それでも私のように同じ問題の解決策を見るためにここに来た人たちにとって、このページで満足のいく答えが得られないためです拡張子は.rbです。あなたはおそらくそれを単純なテキストモードで持っているでしょう。詳しく説明しましょう。ページ全体の解決策をまとめて、ここに行きます(filenameが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
sinister

誰かがRails環境でスクリプトを実行しようとしている場合、RailsはRailsコンテキストでスクリプトを実行するためのランナーを提供します。

Rails runner my_script.rb

詳細はこちら: https://guides.rubyonrails.org/command_line.html#Rails-runner

1
Nikhil Sahu

オープンターミナル

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

またはプログラムの最初に#!/usr/bin/env Rubyを追加します(スクリプトはこれがRubyインタプリタを使用して実行されることを伝える)

オープンターミナル

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