在试图了解Ruby的执行方法,我发现这个博客帖子上的五种方法在Ruby中http://mentalized.net/journal/2010/03/08/5_ways_to_run_commands_from_ruby/红宝石:内核#`拒绝权限运行命令
笔者运行命令创建一个文件err.rb,这输出两行,一个在STDOUT,另一个在STDERR
#!/usr/bin/env ruby
puts "out"
STDERR.puts "error"
他试图运行它与籽粒#`(反引号)
>> `./err.rb`
err
=> "out\n"
点这第一种方式说明的是,当与反引号
STDERR is output, but not captured STDOUT is captured
当我试图复制这个我的系统上运行,我得到了一个权限错误
localhost:sites mike$ `./err.rb`
-bash: ./err.rb: Permission denied
我尝试须藤./err.rb
没有变化。
我可以运行ruby err.rb
,但产生的结果与作者得到的结果不同。即通过运行红宝石err.rb我得到
out
error
有人能解释为什么我收到一个权限错误试图与反引号运行它,并且通常用什么反引号运行它的全部目的就是。