laiziwen 发表于 2013-1-11 09:31:59

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

本帖最后由 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 address ]
:global dbnsip [:pick $ddnsip 0 [:find $ddnsip "/"] ]
:if ($ddnsip != $ddnslastip)do={/tool dns-updateaddress=$dbnsipname=$ddnshostkey-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 address]
:local dbnsip [:pick $ddnsip 0 [:find $ddnsip "/"]]
:local ddnslastip [:resolve DFG.changeip.net]
:if ($dbnsip != $ddnslastip) do={
:log info [ :put ]
} else={
:log info "DDNS IP NO CHANGE."
}
页: [1]
查看完整版本: ros中if判断语句在terminal里运行没问题,在脚本里就运行不了