在 JRuby 中,你可以使用 Ruby 的内置 Kernel#system
方法,它可以执行任意系统命令(包括 shell 命令),并返回命令执行的状态。
例如,如下代码将会在 JRuby 中执行 ls -al
命令:
system("ls -al")
如果你想要获取命令的输出和错误信息,可以使用其中一个 Ruby 标准库中的 Open3.popen3
或 IO.popen
方法,它们可以分别捕获标准输入、输出和错误输出流。
例如,如下代码将会在 JRuby 中执行 ls -al
命令,并捕获其标准输出和错误输出:
require 'open3'
stdout, stderr, status = Open3.capture3('ls -al')
puts stdout
puts stderr
puts status.exitstatus
这段代码将输出 ls -al
命令的标准输出和标准错误输出,并打印出命令执行的状态码(0 表示成功执行,非 0 值表示执行失败或异常终止)。
请注意,使用 system
和 popen
等方法执行 shell 命令时,一定要小心注入攻击。应该避免在命令行中传递用户输入的参数,或者对输入参数进行充分的校验和过滤。