用def加变量调用模块

时间:2015-12-07 08:21:23

标签: ruby

我对这项工作感到有些困惑。在定义中包含一个shell命令," shell_cmd"。如何通过使用puts或不使用调用将变量正确输入到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")

2 个答案:

答案 0 :(得分:0)

我猜你是在正确的轨道上?

如果你试图在一个字符串中解释它,你想把一个变量放在花括号中......

以下应该有效:

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")

答案 1 :(得分:0)

有效的是:ruby版本2.0

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

放入MOD1.add_zone_port(区域,端口)