在試圖瞭解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
有人能解釋爲什麼我收到一個權限錯誤試圖與反引號運行它,並且通常用什麼反引號運行它的全部目的就是。