Ruby 使用def plus变量调用模块

Ruby 使用def plus变量调用模块,ruby,Ruby,我有点搞不清楚这是怎么回事。定义中包含一个shell命令“shell\u cmd”。如何通过使用puts或不使用puts调用shell命令,将变量正确输入shell命令?正确的方法是什么 module MOD1 def MOD1.add_zone_port(zone, port) addportzone = `shell_cmd --obj1=#{zone} --obj2=#{port}` puts #{addportzone} end end puts M

我有点搞不清楚这是怎么回事。定义中包含一个shell命令“shell\u cmd”。如何通过使用puts或不使用puts调用shell命令,将变量正确输入shell命令?正确的方法是什么

module MOD1

    def MOD1.add_zone_port(zone, port)

    addportzone = `shell_cmd --obj1=#{zone} --obj2=#{port}`
    puts #{addportzone}
    end
end

puts MOD1.add_zone_port("zone", "port")

我猜你是在正确的轨道上

如果试图在字符串中解释变量,则需要将其放在大括号中,例如

以下各项应起作用:

module MOD1
  def MOD1.add_zone_port(zone, port)
    `shell_cmd --obj1=#{zone} --obj2=#{port}`
  end
end

puts MOD1.add_zone_port("zone", "port")
或者,如果您不想麻烦给方法模块名称空间

module MOD1
  def add_zone_port(zone, port)
    `shell_cmd --obj1=#{zone} --obj2=#{port}`
  end
end
include MOD1
puts MOD1.add_zone_port("zone", "port")

成功的是:ruby 2.0版

模块MOD1 def MOD1.添加_区域_端口(区域,端口)
shell_cmd--obj1={zone}--obj2={port}
结束 结束


放置MOD1.add_zone_port(zone,port)

是执行shell命令还是只生成字符串?为什么要注释掉方法中最后一行的一半?谢谢取消注释