gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:37 28 4
gpt4 key购买 nike

在尝试了解 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
=> "out\n"

这说明的重点是,当使用反引号运行时

STDERR is output, but not captured
STDOUT is captured

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

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”执行,"file"需要具有执行权限

它在你使用 ruby​​ 时运行,因为 ruby​​ 具有执行权限并且它只是读取该文件。

试试这个

localhost:sites mike$ chmod +x err.rb

关于Ruby:内核#`运行命令的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13107365/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com