我在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
有关更多详细信息,请参阅wikibooks.
编辑(JörgWMittag):使用#!/usr/bin/env ruby
而不是#!/usr/bin/ruby
像shebang那样更容易使用,因为在过去20年中生产的每个Unix上都env
知道命令存在/usr/bin
,而Ruby安装通常都在这里.(例如,我的生活/home/joerg/jruby-1.2.0/bin/ruby
.)
正如其他人所提到的,您希望#!
在开头有一个shebang()行,并将权限更改为可执行文件.
我建议使用#!/usr/bin/env ruby
而不是直接使用Ruby的路径,因为它会使你的脚本更容易移植到可能在不同目录中安装Ruby的系统; env
将搜索您的搜索路径,因此它将找到您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