四種變量 global - 定義全局變量, 可以要所有的腳本中調(diào)用共享 local - 定義本地變量,只能在其所要的腳本下調(diào)用,不能被其它腳本共享 loop index variables - 定義在for或foreach里的索引號(hào)變量 monitor variables - 監(jiān)視變量 ROS算術(shù)操作 - 負(fù)號(hào);相減。 ! 邏輯非。 / 相除。 . 連接。兩個(gè)符串的連接,添加元素到列表 ^ 異或(XOR) ~ 取反 * 相剩 & 與(AND) && 邏輯與 + 相加 < 小于 << 向左位移 <= 小于等于 > 大于 >= 大于等于 >> 向右位移 | 或 || 邏輯或 ROS說(shuō)明書(shū)里的例子: 計(jì)算順序 [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 數(shù)位取反 [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<=2.0.3.10) false [admin@MikroTik]> :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 數(shù)位與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 << 7) - 1)) 255.255.255.128 連接操作 [admin@MikroTik]> :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 產(chǎn)生2秒10kHz的音頻 length缺省值為100ms frequency缺省值為1000Hz :set a "/int dis lan\n/int dis wan" :execute $a 執(zhí)行多條命令,例子里執(zhí)行了兩條命令。\n是換行 :global 定義全局變量 :list interface 顯示相關(guān)命令。顯示當(dāng)前目錄及子目錄下有關(guān)interface的命令 :pick 取字符串或數(shù)組的某一斷。字符串(數(shù)組)的第一個(gè)為0。 [admin@MikroTik]>:put [:pick "I love you" 2 6] love :time 執(zhí)行命令所需的時(shí)間 [admin@MikroTik]> :put [:time [:resole www.sina.com.cn]] 00:00:00.006 執(zhí)行解析www.sina.com.cn這個(gè)域名所需的時(shí)間 toip toarray tonum tobool tostr toid totime 轉(zhuǎn)換值類型 :delay 3 延時(shí)3秒,缺省為1秒 :find 查找字符串或數(shù)組中第一個(gè)出現(xiàn)查找內(nèi)容的位置 [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<2) do={:put true} true 如果條件為真,執(zhí)行do={}里面的命令 [admin@MikroTik]>:if(1>2) do={:put true} else={:put flase} flase 如果條件為真,執(zhí)行do={}里面的命令,否則執(zhí)行else={}里有命令 :local 定義本地變量 :while 條件為真時(shí)循環(huán)執(zhí)行do={}里的腳本命令 [admin@MikroTik]>:set i 0;:while($i<5) do={:put $i;:set i ($i+1)} 0 1 2 3 4 5 :for 循環(huán)執(zhí)行do={}里的腳本命令 :for i from=1 to=100 step=30 do={:put $i} 1 31 61 91 :foreach 在集合(數(shù)組)里循環(huán)執(zhí)行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)循環(huán)輸出 interface的名稱。我這時(shí)有四張網(wǎng)卡 :log 日志類型 日志內(nèi)容 寫文本到日志(script log) 類型在/system logging里可以找到 :log info "系統(tǒng)信息" 到LOG里查查運(yùn)行結(jié)果吧 :resolve 解析域名的IP地址 [admin@MikroTik] > :put [:resolve www.sina.com.cn] 61.172.201.240 :environment print 顯示所有變量及其值 :len 字符串或數(shù)組的長(zhǎng)度 [admin@MikroTik] > :put [:len hello] 5 [admin@MikroTik] > :put [:len "1,2,23,65,54,6"] 6 :nothing 空值。nothing不等0,不等于空字符"" :find abc a的結(jié)果是0 :find abc d的結(jié)果是nothing :set 賦值 [admin@MikroTik] > :set a test 將abc字符賦給變量a [admin@MikroTik] > :put $a test [admin@MikroTik] > :put a a 引用變量的值要在變量前面加$ |
|
來(lái)自: 昵稱13184 > 《我的圖書(shū)館》