作为一个云计算领域的专家,我建议您使用Open3
库来从Ruby代码中调用shell命令。Open3
库提供了一个简单的方法来执行shell命令,并捕获输出、错误和状态。
以下是一个使用Open3
库执行shell命令的示例:
require 'open3'
command = 'ls'
stdin, stdout, stderr, wait_thr = Open3.popen3(command)
stdout.each_line do |line|
puts line
end
stderr.each_line do |line|
puts line
end
exit_status = wait_thr.value
在这个示例中,我们使用Open3.popen3
方法执行ls
命令,并将标准输出和标准错误分别存储在stdout
和stderr
变量中。我们可以使用each_line
方法遍历这些变量,并打印每一行输出。最后,我们使用wait_thr.value
来获取命令的退出状态。
请注意,在执行shell命令时,需要小心处理用户输入,以避免安全漏洞。另外,如果您需要执行的命令是动态生成的,请确保正确转义参数,以避免命令注入攻击。
领取专属 10元无门槛券
手把手带您无忧上云