class Switch
#可读写属性
attr_accessor :type #交换机类型
attr_accessor :ipAddress #IP地址
attr_accessor :portld #端口号
attr_accessor :boardld #单板
attr_accessor :port #接口
attr_accessor :softwareVersion #软件版本
#初始化属性
def initialize(type="TestSwitch",ipAddress="127.0.0.1",portld=80,boardld="TestBoard",port=1,softwareVersion="V 1.0")
@type=type
@ipAddress=ipAddress
@portld=portld
@boardld=boardld
@port =port
@softwareVersion=softwareVersion
end
#方法:连接设备
def login(ip)
@ipAddress=ip
if @ipAddress == "192.168.1.1"
return true
else
return false
end
end
#方法:断开连接设备
def unlink(ip)
if ip == @ipAddress
puts "断开连接成功"
else
return false
end
end
#方法:下发命令
def send(order)
raise "Something Wrong" if order == "vlan 55555"
rescue => err
print "指令错误,出错指令为:"
ensure
puts order
end
end
#创建交换机类型为S9300的交换机,IP地址为192.168.1.1,端口号为23
mySwitch = Switch.new("S9300","192.168.1.1",23)
#使用“连接设备”方法连接设备
mySwitch.login("192.168.1.2")
#下发指令
mySwitch.send("display device")
mySwitch.send("vlan 55555")
#使用“断开设备连接”方法断开设备连接
mySwitch.unlink("192.168.1.2")
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。
Ruby的变量有一定的规则,以$开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量。
常数则以大写字母开头这种方法,对文本编辑器的命令补全很有帮助,如在vim下先键入$及开头字母,再敲击Ctrl+p,则可专门补全本文件以及关联文件中的全局变量,perl与php亦有此优点。
已经定义的类可以在运行时修改
Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单例方法。
使用Ruby可以写出简短而又功能强大的代码
下面的方法用来完成两个矩阵的乘积
注:ruby标准库中已包含矩阵库 Matrix
system(“.ruby”)或者load 'another.rb'具体代码如下:
# 返回ls的输出
s=`ls`
cmd= "ls"
s= `#{cmd}`
# 返回true or false
s= system('ls')
cmd= 'ls'
s= system(cmd)
#返回输出
s= %x[uptime]
#用top进程替换当前ruby进程
exec "top"
cmd = 'top'
exec cmd