私は OS X (bash を使用) を使用しており、UNIX の初心者です。ruby プログラムを実行するために「ruby file.rb」を必要とせず、代わりに「ruby.rb」を実行できるようにファイルを修正できるかどうかを知りたいです。
これをしない理由はありますか?
ありがとう!
はい、できます。
その中に次のようなものがあると仮定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/ruby
env
/usr/bin
/home/joerg/jruby-1.2.0/bin/ruby
他の人が述べたように#!
、最初にシバン ( ) 行を置き、アクセス許可を実行可能に変更します。
#!/usr/bin/env ruby
Ruby へのパスを直接使用する代わりに使用することをお勧めします。これにより、別のディレクトリに 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
chmod +x /path/to/file
インタープリターの前にシバン (#!/usr/local/ruby または OSX 上のパス) を付ける限り、そうしない理由はありません。シェルは気にしません。
ファイルの最初の行として正しいシバンを配置します。元:
#!/usr/bin/ruby
シェルで、ファイルを実行可能にします
chmod +x file