use*_*147 1 ruby permissions bash
我有以下 Ruby 代码:
cmd="
source= $(mktemp)
echo source
"
system("#{cmd}")
system("source= $(mktemp)")
Run Code Online (Sandbox Code Playgroud)
我希望代码执行“mktemp”命令并将临时文件名输出到变量“source”。但是,我收到的错误消息是:
sh: /tmp/tmp.EpXeLNkqjN: Permission denied
sh: /tmp/tmp.wVCqdqHSpp: Permission denied
------------------
(program exited with code: 0)
Press return to continue
Run Code Online (Sandbox Code Playgroud)
即使我以 root 身份运行该程序,错误也是一样的。
但是,当我仅运行 mktemp 命令时,没有问题。怎么了?
符号中不能有空格=。将您的代码替换为
cmd="
source=$(mktemp)
echo $source
"
system("#{cmd}")
system("source=$(mktemp)")
Run Code Online (Sandbox Code Playgroud)
注意:符号后不能有空格=。
在符号后面留一个空格的问题=是,sh它将尝试执行由扩展给出的命令$(mktemp)(即命令/tmp/tmp.EpXeLNkqjN或类似的东西 - 不存在),并将变量source设置为空字符串。
| 归档时间: |
|
| 查看次数: |
1917 次 |
| 最近记录: |