4

私はUbuntuを使用しています。ルビーファイルを実行しようとしていますtodo.rbこのシバンをファイルの最初の行として追加しました

#!/usr/bin/env ruby

rbファイルが置かれているディレクトリに移動し、todo.rbを実行すると、エラーが発生しますtodo.rb: command not found

そこで、/ usr/binディレクトリに直接移動しました。envコマンドを見つけて実行しました。コマンドの出力には、envrubyパスとrubyデータが表示されます。

MY_RUBY_HOME=/home/tallercreativo/.rvm/rubies/ruby-1.9.2-p290
PATH=/home/tallercreativo/.rvm/gems/ruby-1.9.2-p290/bin:/home/tallercreativo/.rvm/gems/ruby-1.9.2-p290@global/bin:/home/tallercreativo/.rvm/rubies/ruby-1.9.2-p290/bin:/home/tallercreativo/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
GEM_PATH=/home/tallercreativo/.rvm/gems/ruby-1.9.2-p290:/home/tallercreativo/.rvm/gems/ruby-1.9.2-p290@global
RUBY_VERSION=ruby-1.9.2-p290

それで、私はそれを機能させることができなかったので、私は直接ルビーを指すようにシェバンを変更しました:

#!/home/tallercreativo/.rvm/rubies/ruby-1.9.2-p290/bin/ruby

同じコマンドが見つからないというエラーが表示されます。どうしたの?

4

2 に答える 2

11

最初にスクリプトを実行可能にする必要があります。

chmod +x todo.rb

次に、次のように実行する必要があります。

./todo.rb

todo.rbに配置しない限り、と言うだけでは実行できません。配置PATHする場合は、どこからでも実行できます。

于 2012-04-20T16:46:40.007 に答える
6

コマンドrubyの最後にがありません。envもしかして:

#!/usr/bin/env ruby

env探している実行可能ファイルを指定する必要があります。

(質問更新)

このようにコードを実行していますか? todo.rb?そのディレクトリがの中にない限り、スクリプトへのフルパス(/home/you/project/todo.rb)または相対パス( )を指定する必要があります。./todo.rb$PATH

于 2012-04-20T16:25:13.110 に答える