hualinux ros 1.18:RouterOS脚本(八):循环语句和条件语句

目录

一、循环语句

二、if条件语句


继续讲ros脚本,本章讲ros循环语句和条件语句,它们使用的频率很高。

一、循环语句

ros循环语句有do...while、for、foreach,如下表所示:

命令语法说明
do..while

:do { <命令> } while=( <条件> );

:while ( <条件> ) do={ <命令> };

上面是2种写法

执行命令直到满足给定条件。
for:for <变量> from=<整数> to=<整数> step=<整数> do={ <命令> }在给定的迭代次数上执行命令
foreach:foreach <变量> in=<数组> do={ <命令> };对列表中的每个元素执行命令

 用得比较多的还是for和while循环,比如批量操作,比如说我们在《实验实例pppoe配置》的基础上再创建10个账号pppoe,用户名:从t1到t10,密码为hua1到hua10,配置pppoe1,可以写成

# 下面中 ("t".$i) 的小括号不能少, t的双引号也不能少,字符串要括起来
:for i  from=1 to=10 do={ ppp secret add name=("t".$i) password=("hua".$i) profile=pppoe1}  

上面我没有写step,则默认为1。效果为:

其它的就不讲了,差不多的

二、if条件语句

条件语句一般都是if语句,主要是做判断,符合条件就执行。如下表所示:

CommandSyntaxDescription
if:if (<条件>) do={<命令>} else={<命令>} <语句>如果给定条件为真,则在do块中执行命令,否则如果指定则在else块中执行命令。

这处if条件写的时候要注意空格的问题,要不很容易出错。

我的ros6.47版本,小括号左右是要留空格的, “do=”不能有空格。比如我要判断p1用户是不是在线,如果在线的话,在线时长是多少,这个好计费啊,语句如下:

# 创建一个名为t1的脚本,添加如下内容
:local userid [/ppp active find name=p11]
if ($userid) do={\
:put [/ppp active get value-name=uptime number=$userid]
} else={ :put "not found" }

#执行脚本t1,打印出在线时间,发现为2小时06分50秒
[hua@MikroTik] > /system script run t1
02:06:50

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值