加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby:内核#`权限被拒绝运行命令

发布时间:2020-12-17 02:37:17 所属栏目:百科 来源:网络整理
导读:在试图了解 Ruby执行方法时,我发现这篇博客文章介绍了在Ruby http://mentalized.net/journal/2010/03/08/5_ways_to_run_commands_from_ruby/中运行命令的五种方法 作者创建了一个文件err.rb,它输出两行,一行在STDOUT上,另一行在STDERR上 #!/usr/bin/env ruby
在试图了解 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"

他尝试运行它的第一种方法是使用Kernal#`(反引号)

>> `./err.rb`

      err
=> "outn"

这说明了在使用反引号运行时

06002

当我试图在我的系统上复制它时,我收到了一个权限错误

localhost:sites mike$`./err.rb`
-bash: ./err.rb: Permission denied

我试过sudo ./err.rb没有变化.

我可以运行ruby err.rb,但这会产生与作者得到的结果不同的结果.即通过运行ruby err.rb我得到

out
  error

有人可以解释为什么我试图用反引号运行它时会遇到权限错误,而且通常用反引号运行它的目的是什么.

解决方法

尝试添加权限执行,使用“chmod x that_file_name”
要使用“./file”格式执行,“文件”需要具有执行权限

它在ruby时运行,因为ruby具有执行权限,它只是读取该文件.

试试这个

localhost:sites mike$chmod +x err.rb

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读