gpt4 book ai didi

ruby - 为什么从我的 Ruby 脚本调用 mktemp 时提示权限被拒绝?

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:59 24 4
gpt4 key购买 nike

我有以下 Ruby 代码:

cmd="
source= $(mktemp)
echo source
"
system("#{cmd}")
system("source= $(mktemp)")

我希望代码执行“mktemp”命令并将临时文件名输出到变量“source”。但是,我收到的错误消息是:

sh: /tmp/tmp.EpXeLNkqjN: Permission denied

sh: /tmp/tmp.wVCqdqHSpp: Permission denied


------------------
(program exited with code: 0)
Press return to continue

即使我以 root 身份运行程序,错误也是一样的。

但是,当我只运行 mktemp 命令时,没有问题。怎么了?

最佳答案

= 不能有空格象征。将您的代码替换为

cmd="
source=$(mktemp)
echo $source
"
system("#{cmd}")
system("source=$(mktemp)")

注意:= 后没有空格签名

= 后留空格的问题标志是sh将尝试执行 $(mktemp) 的扩展给出的命令(即命令 /tmp/tmp.EpXeLNkqjN 或类似的东西——不存在)与变量 source被设置为空字符串。

关于ruby - 为什么从我的 Ruby 脚本调用 mktemp 时提示权限被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14099700/

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