找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3302|回复: 0

[脚本] ros中if判断语句在terminal里运行没问题,在脚本里就运行不了

[复制链接]
发表于 2013-1-11 09:31:59 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 laiziwen 于 2013-1-11 12:29 编辑

ros是3.3的    5.2的也运行过也是一样的情况,以下是脚本:
:global ddnsuser "xxxx"
:global ddnspass "xxxx"
:global ddnshost "XXX.SSSSS.net"
:global ddnsip [ /ip address get [/ip address find interface="adsl1"] address ]
:global dbnsip [:pick $ddnsip 0 [:find $ddnsip "/"] ]
:if ($ddnsip != $ddnslastip)  do={/tool dns-update  address=$dbnsip  name=$ddnshost  key-name=$ddnsuser   key=$ddnspass } else= {:log info "DDNS IP NO CHANGE"}
:global ddnslastip $ddnsip

先声明第一次运行脚本前,我已经先定义了$ddnslastip 这个变量:[:global ddnslastip 0.0.0.0/0 ]
请高手指点为什么在/system/scripts 下加入这个脚本运行没反映,在终端里运行是没问题的?
研究发现这个脚本应该是没问题的,问题在于脚本下运行的时候获取不到 $ddnslastip的变量,就是说全局变量在脚本里提取不到的。(这个问题的原因,有望专家指点。)
现在我用域名解析定义 $ddnslastip变量,以下是现在用的脚本:
:local ddnsuser "XXt"
:local ddnspass "XXD.com"
:local ddnshost "DFG.changeip.net"
:local ddnsip [/ip address get [/ip address find interface="adsl1"] address]
:local dbnsip [:pick $ddnsip 0 [:find $ddnsip "/"]]
:local ddnslastip [:resolve DFG.changeip.net]
:if ($dbnsip != $ddnslastip) do={
:log info [ :put [/tool dns-update name=$ddnshost address=$dbnsip key-name=$ddnsuser key=$ddnspass ] ]
} else={
:log info "DDNS IP NO CHANGE."
}
routeros
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-29 14:40 , Processed in 0.060906 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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