找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 80717|回复: 128

[脚本] ROS2.96脚本详解

[复制链接]
发表于 2006-4-2 01:03:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
四种变量
global - 定义全局变量, 可以要所有的脚本中调用共享
local - 定义本地变量,只能在其所要的脚本下调用,不能被其它脚本共享
loop index variables - 定义在for或foreach里的索引号变量
monitor variables - 监视变量

ros算术操作
-   负号;相减。
!   逻辑非。
/   相除。
.   连接。两个符串的连接,添加元素到列表
^   异或(XOR)
~   取反
*   相剩
&   与(AND)
&&  逻辑与
+   相加
<   小于
=  大于等于
>>  向右位移
|   或
||  逻辑或

ROS说明书里的例子:

计算顺序
[admin@MikroTik]> :put (10+1-6*2=11-12=2+(-3)=-1)
false
[admin@MikroTik]> :put (10+1-6*2=11-12=(2+(-3)=-1))
true

逻辑非
[admin@MikroTik]> :put (!true)
false
[admin@MikroTik]> :put (!(2>3))
true

数位取反
[admin@MikroTik]> :put (~255.255.0.0)
0.0.255.255

加法
[admin@MikroTik]> :put (3ms + 5s)
00:00:05.003
[admin@MikroTik]> :put (10.0.0.15 + 0.0.10.0)
cannot add ip address to ip address
[admin@MikroTik]> :put (10.0.0.15 + 10)
10.0.0.25

减法
[admin@MikroTik]> :put (15 - 10)
5
[admin@MikroTik]> :put (10.0.0.15 - 10.0.0.3)
12
[admin@MikroTik]> :put (10.0.0.15 - 12)
10.0.0.3
[admin@MikroTik]> :put (15h - 2s)
14:59:58

乘法
[admin@MikroTik]> :put (12s * 4)
00:00:48
[admin@MikroTik]> :put (-5 * -2)
10

除法
[admin@MikroTik]> :put (10s / 3)
00:00:03.333
[admin@MikroTik]> :put (5 / 2)
2
[admin@MikroTik]> :put (0:0.10 / 3)
00:00:02

比较
[admin@MikroTik]> :put (10.0.2.3 :put (100000s>27h)
true
[admin@MikroTik]> :put (60s,1d!=1m,3600s)
true
[admin@MikroTik]> :put (bridge=routing)
false
[admin@MikroTik]> :put (yes=false)
false
[admin@MikroTik]> :put (true=aye)
false

逻辑与 AND, 逻辑或 OR
[admin@MikroTik]> :put ((yes && yes) || (yes && no))
true
[admin@MikroTik]> :put ((no || no) && (no || yes))
false

数位与AND, 或OR, 异或XOR
[admin@MikroTik]> :put (10.16.0.134 & ~255.255.255.0)
0.0.0.134

位移操作
[admin@MikroTik]> :put (~((0.0.0.1  :put (1 . 3)
13
[admin@MikroTik]> :put (1,2 . 3)
1,2,3
[admin@MikroTik]> :put (1 . 3,4)
13,4
[admin@MikroTik]> :put (1,2 . 3,4)
1,2,3,4
[admin@MikroTik]> :put ((1 . 3) + 1)
14
[admin@MikroTik]> :set  a "It's "
[admin@MikroTik]> :put ($a . OK)
It's OK

ROS脚本保留字
beep execute global list pick time toip typeof
delay find if local put toarray tonum while
do for led log resolve tobool tostr
environment foreach len nothing set toid totime

:beep length=2s frequency=10000
产生2秒10kHz的音频
length缺省值为100ms
frequency缺省值为1000Hz

:set a "/int dis lan\n/int dis wan"
:execute $a
执行多条命令,例子里执行了两条命令。\n是换行

:global
定义全局变量

:list interface
显示相关命令。显示当前目录及子目录下有关interface的命令

:pick
取字符串或数组的某一断。字符串(数组)的第一个为0。
[admin@MikroTik]>:put [:pick "I love you" 2 6]
love

:time
执行命令所需的时间
[admin@MikroTik]> :put [:time [:resole www.sina.com.cn]]
00:00:00.006
执行解析www.sina.com.cn这个域名所需的时间

toip toarray tonum tobool tostr toid totime
转换值类型

:delay 3
延时3秒,缺省为1秒

:find
查找字符串或数组中第一个出现查找内容的位置
[admin@MikroTik]>:put [:find abcdcba cd]
2
[admin@MikroTik]>:put [:find "1,2,3,4,3,2,1" 2]
1

:put
输出到屏幕上,上面就很多例子了。

:if
条件选择
[admin@MikroTik]>:if(1:if(1>2) do={:put true} else={:put flase}
flase
如果条件为真,执行do={}里面的命令,否则执行else={}里有命令

:local
定义本地变量

:while
条件为真时循环执行do={}里的脚本命令
[admin@MikroTik]>:set i 0;:while($i :put [:resolve www.sina.com.cn]
61.172.201.240

:environment print
显示所有变量及其值

:len
字符串或数组的长度
[admin@MikroTik] > :put [:len hello]
5
[admin@MikroTik] > :put [:len "1,2,23,65,54,6"]
6

:nothing
空值。nothing不等0,不等于空字符""
:find abc a的结果是0
:find abc d的结果是nothing

:set
赋值
[admin@MikroTik] > :set a test
将abc字符赋给变量a
[admin@MikroTik] > :put $a
test
[admin@MikroTik] > :put a
a
引用变量的值要在变量前面加$
routeros
发表于 2006-4-2 01:24:01 | 显示全部楼层
收藏~~~~~~~~`
routeros
回复

使用道具 举报

发表于 2006-4-2 01:25:54 | 显示全部楼层
好帖
routeros
回复

使用道具 举报

发表于 2006-4-2 07:53:22 | 显示全部楼层
顶了!谢谢帮大家归类的那么好
routeros
回复

使用道具 举报

发表于 2006-4-2 09:54:51 | 显示全部楼层
我赛,这么好的帖子没有人顶
世风日下啊
routeros
回复

使用道具 举报

发表于 2006-4-2 10:04:20 | 显示全部楼层
顶了!谢谢
routeros
回复

使用道具 举报

发表于 2006-4-2 13:10:59 | 显示全部楼层
好,再详细一点更好了
routeros
回复

使用道具 举报

发表于 2006-4-2 22:24:58 | 显示全部楼层
好东西呀~~谢谢楼主
routeros
回复

使用道具 举报

发表于 2006-4-2 22:51:40 | 显示全部楼层

回复 #8 kouk 的帖子

upupupupupupupupupuup
routeros
回复

使用道具 举报

发表于 2006-4-3 08:47:40 | 显示全部楼层
太棒了。
routeros
回复

使用道具 举报

发表于 2006-4-3 16:35:59 | 显示全部楼层
好!谢谢楼主!
routeros
回复

使用道具 举报

发表于 2006-4-3 17:23:52 | 显示全部楼层
经典~
routeros
回复

使用道具 举报

发表于 2006-4-3 18:40:16 | 显示全部楼层
好东西!先顶一下,回头试试。
routeros
回复

使用道具 举报

发表于 2006-4-4 18:03:09 | 显示全部楼层
谢谢共享,我是菜鸟,正寻找这方面的资料.
routeros
回复

使用道具 举报

发表于 2006-4-4 18:40:54 | 显示全部楼层
lgkfadlkhgfkdhjbvjc
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-18 08:13 , Processed in 0.122109 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表