一些 Ruby 核心方法接受包含要作为系统命令执行的文本的字符串数据。
不应使用未知或未净化的命令调用它们。
这些方法包括
Kernel.exec
Kernel.spawn
Kernel.system
`command`(反引号方法)(也通过表达式 %x[command] 调用)。
%x[command]
IO.popen(当使用 "-" 之外的其他内容调用时)。
IO.popen
"-"
仅当给定的路径名称以 | 开头时,某些方法才会执行系统命令
|
Kernel.open(command).
Kernel.open(command)
IO.read(command).
IO.read(command)
IO.write(command).
IO.write(command)
IO.binread(command).
IO.binread(command)
IO.binwrite(command).
IO.binwrite(command)
IO.readlines(command).
IO.readlines(command)
IO.foreach(command).
IO.foreach(command)
URI.open(command)。
请注意,从子类 File 调用时,其中一些方法不会执行命令
File
File.read(path).
File.read(path)
File.write(path).
File.write(path)
File.binread(path).
File.binread(path)
File.binwrite(path).
File.binwrite(path)
File.readlines(path).
File.readlines(path)
File.foreach(path).
File.foreach(path)