Mikrotik ROS腳本語法入門

ROS 腳本 註解
四種變量
global - 定義全局變量, 可以要所有的 腳本 中調用共享
local - 定義本地變量,只能在其所要的 腳本 下調用,不能被其它 腳本 共享
loop index variables - 定義在for或foreach裏的索引號變量
monitor variables - 監視變量
ROS算術操作
- 負號;相減。
! 邏輯非。
/ 相除。
. 連接。兩個符串的連接,添加元素到列表
^ 異或(XOR)
~ 取反
* 相剩
& 與(AND)
&&邏輯與
+ 相加
< 小於
&lt;&lt;向左位移
&lt;=小於等於
> 大於
&gt;=大於等於
&gt;&gt;向右位移
| 或
||邏輯或
ROS說明書裏的例子:
計算順序
[admin@MikroTik]&gt; :put (10+1-6*2=11-12=2+(-3)=-1)
false
[admin@MikroTik]&gt; :put (10+1-6*2=11-12=(2+(-3)=-1))
true
邏輯非
[admin@MikroTik]&gt; :put (!true)
false
[admin@MikroTik]&gt; :put (!(2&gt;3))
true
數位取反
[admin@MikroTik]&gt; :put (~255.255.0.0)
0.0.255.255
加法
[admin@MikroTik]&gt; :put (3ms + 5s)
00:00:05.003
[admin@MikroTik]&gt; :put (10.0.0.15 + 0.0.10.0)
cannot add ip address to ip address
[admin@MikroTik]&gt; :put (10.0.0.15 + 10)
10.0.0.25
減法
[admin@MikroTik]&gt; :put (15 - 10)
5
[admin@MikroTik]&gt; :put (10.0.0.15 - 10.0.0.3)
12
[admin@MikroTik]&gt; :put (10.0.0.15 - 12)
10.0.0.3
[admin@MikroTik]&gt; :put (15h - 2s)
14:59:58
乘法
[admin@MikroTik]&gt; :put (12s * 4)
00:00:48
[admin@MikroTik]&gt; :put (-5 * -2)
10
除法
[admin@MikroTik]&gt; :put (10s / 3)
00:00:03.333
[admin@MikroTik]&gt; :put (5 / 2)
2
[admin@MikroTik]&gt; :put (0:0.10 / 3)
00:00:02
比較
[admin@MikroTik]&gt; :put (10.0.2.3<=2.0.3.10)
false
[admin@MikroTik]> :put (100000s&gt;27h)
true
[admin@MikroTik]&gt; :put (60s,1d!=1m,3600s)
true
[admin@MikroTik]&gt; :put (bridge=routing)
false
[admin@MikroTik]&gt; :put (yes=false)
false
[admin@MikroTik]&gt; :put (true=aye)
false
邏輯與 AND, 邏輯或 OR
[admin@MikroTik]&gt; :put ((yes && yes) || (yes && no))
true
[admin@MikroTik]&gt; :put ((no || no) && (no || yes))
false
數位與AND, 或OR, 異或XOR
[admin@MikroTik]&gt; :put (10.16.0.134 & ~255.255.255.0)
0.0.0.134
位移操作
[admin@MikroTik]&gt; :put (~((0.0.0.1 <&lt; 7) - 1))
255.255.255.128
連接操作
[admin@MikroTik]> :put (1 . 3)
13
[admin@MikroTik]&gt; :put (1,2 . 3)
1,2,3
[admin@MikroTik]&gt; :put (1 . 3,4)
13,4
[admin@MikroTik]&gt; :put (1,2 . 3,4)
1,2,3,4
[admin@MikroTik]&gt; :put ((1 . 3) + 1)
14
[admin@MikroTik]&gt; :seta "It's "
[admin@MikroTik]&gt; :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]&gt;:put [:pick "I love you" 2 6]
love
:time
執行命令所需的時間
[admin@MikroTik]&gt; :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]&gt;:put [:find abcdcba cd]
2
[admin@MikroTik]&gt;:put [:find "1,2,3,4,3,2,1" 2]
1
:put
輸出到屏幕上,上面就很多例子了。
:if
條件選擇
[admin@MikroTik]&gt;:if(1<2) do={:put true}
true
如果條件爲真,執行do={}裏面的命令
[admin@MikroTik]>:if(1&gt;2) do={:put true} else={:put flase}
flase
如果條件爲真,執行do={}裏面的命令,否則執行else={}裏有命令
:local
定義本地變量
:while
條件爲真時循環執行do={}裏的 腳本 命令
[admin@MikroTik]&gt;:set i 0;:while($i<5) do={:put $i;:set i ($i+1)}
0
1
2
3
4
5
:for
循環執行do={}裏的 腳本 命令
:for i from=1 to=100 step=30 do={:put $i}
1
31
61
91
:foreach
在集合(數組)裏循環執行do={}裏的 腳本 命令
:foreach i in=[/interface find type=ether] do={:put [/interface get $i name]}
ether1
ether2
ether3
ether4
在[/interface find type=ether]的集合(類型爲ether的interface ID)循環輸出
interface的名稱。我這時有四張網卡
:log 日誌類型 日誌內容
寫文本到日誌(script log)
類型在/system logging裏可以找到
:log info "系統信息"
到LOG裏查查運行結果吧
:resolve
解析域名的IP地址
[admin@MikroTik] > :put [:resolve www.sina.com.cn]
61.172.201.240
:environment print
顯示所有變量及其值
:len
字符串或數組的長度
[admin@MikroTik] &gt; :put [:len hello]
5
[admin@MikroTik] &gt; :put [:len "1,2,23,65,54,6"]
6
:nothing
空值。nothing不等0,不等於空字符""
:find abc a的結果是0
:find abc d的結果是nothing
:set
賦值
[admin@MikroTik] &gt; :set a test
將abc字符賦給變量a
[admin@MikroTik] &gt; :put $a
test
[admin@MikroTik] &gt; :put a
a
引用變量的值要在變量前面加$
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章