12

私は OS X (bash を使用) を使用しており、UNIX の初心者です。ruby プログラムを実行するために「ruby file.rb」を必要とせず、代わりに「ruby.rb」を実行できるようにファイルを修正できるかどうかを知りたいです。

これをしない理由はありますか?

ありがとう!

4

5 に答える 5

28

はい、できます。

その中に次のようなものがあると仮定ruby.rbします:

#!/usr/bin/env ruby
puts 'Hello world'

コマンドラインで:chmod +x ruby.rb

これにより、実行可能になります。

次に、次のように実行できます。

./ruby.rb

詳細については、ウィキブックを参照してください。

編集 (Jörg W Mittag):過去 20 年間に作成されたすべての Unix では、コマンドは に存在することが知られているため、シバン行としての#!/usr/bin/env ruby代わりに使用する方が移植性が高くなりますが、Ruby のインストールは通常、いたるところにあります。(例: 私の住んでいるところ)#!/usr/bin/rubyenv/usr/bin/home/joerg/jruby-1.2.0/bin/ruby

于 2009-03-31T14:48:51.733 に答える
8

他の人が述べたように#!、最初にシバン ( ) 行を置き、アクセス許可を実行可能に変更します。

#!/usr/bin/env rubyRuby へのパスを直接使用する代わりに使用することをお勧めします。これにより、別のディレクトリに Ruby がインストールされている可能性のあるシステムへのスクリプトの移植性が向上します。は検索パスを検索し、コマンドラインでenv実行した場合と同じ Ruby を見つけます。rubyもちろん、 が別の場所にあると問題が発生しますが、Ruby が にあるよりもにあるenv方がはるかに一般的です( 、、などにある可能性があります)。env/usr/bin/env/usr/bin/ruby/usr/local/bin/ruby/opt/bin/ruby/opt/local/bin/ruby

#!/usr/bin/env ruby
puts "Hello!"

そして実行可能にします:

chmod +x file.rb
于 2009-03-31T14:54:13.483 に答える
4

chmod +x /path/to/file

インタープリターの前にシバン (#!/usr/local/ruby または OSX 上のパス) を付ける限り、そうしない理由はありません。シェルは気にしません。

于 2009-03-31T14:45:52.253 に答える
2

ファイルの最初の行として正しいシバンを配置します。元:

#!/usr/bin/ruby

シェルで、ファイルを実行可能にします

chmod +x file
于 2009-03-31T14:49:01.560 に答える