ruby - 如何清理 shell 命令并在 Ruby 中获取输出?

标签 ruby shell sanitize

我必须运行一些用户输入的 shell 命令。我找到了一种看起来安全的方法:system *%W(ls #{file}) [here] .

我需要获取该命令的输出,所以我不能只使用system。有没有办法清理反引号 ``%x[] 的命令?

最佳答案

你想要IO::popen而不是系统。您仍然可以传递字符串数组来调用命令,而无需 shell,并且可以从生成的 IO 对象中读取

如果您也想读取 stderr,请使用 open3模块而不是IO。

关于ruby - 如何清理 shell 命令并在 Ruby 中获取输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5368623/

相关文章:

ruby-on-rails - 访问哈希元素时未定义的方法

ruby - 要求不在规范内工作

linux - 将当前目录更改为 sh 的管道回显不起作用

linux shell脚本复制目录树和链接文件

ruby - 我如何用 Mechanize (使用 cookie)抓取谷歌阅读器

ruby - Rack URL 映射

bash - 如何在单引号内扩展变量?

javascript - 如何在angularjs中迭代一个对象?

styles - ngStyle 内的函数调用被清理

ruby-on-rails - Rails - strip_tags - 没有捕获 DOCTYPE?