Ruby 1.9如果我有一个shebang指向ruby,为什么系统不能看到它?

我正在使用Ubuntu.我正在尝试运行ruby文件todo.rb
我添加了这个shebang作为文件的第一行

#!/usr/bin/env ruby

我转到rb文件所在的目录,然后运行todo.rb并获取错误todo.rb:找不到命令.

所以我直接进入了/usr/bin目录.我找到了env命令并运行它. env命令的输出显示ruby路径和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

因此,我无法使其工作,我改变了shebang直接指向ruby:

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

我得到相同的命令没有找到错误.怎么了?

最佳答案
您需要先使脚本可执行:

chmod +x todo.rb

然后你需要像这样运行它:

./todo.rb

你不能只通过说todo.rb来运行它,除非你把它放在你的PATH中,在这种情况下你可以从任何地方这样做.

转载注明原文:Ruby 1.9如果我有一个shebang指向ruby,为什么系统不能看到它? - 代码日志