Ros脚本 在命令行下可以运行放到script list却无法运行
/ppp act pri ser pppoe w:set num
:for ccc from 0 to $num do={:set name ;:set mac ;:if (="") do {:put $name;:put $mac;/ppp se set $name caller-id="$mac"}}
上面的代码 我在命令行下试过了可以正确的运行 分了3段输入``/ppp act pri ser pppoe w 和:set num 各一段最后就是那个循环了`` :put 命令显示出来的也正确`` 脚本嘛 当然要放script list里运行才方便``
可是放上去点run后却没反映``显示运行次数的那栏也始终为0````找了许多资料都没有找到相关的``帮忙看下问题出在那里哈`` 谢谢先
[ 本帖最后由 arica1985e 于 2008-3-14 14:39 编辑 ] 沙发```自己顶下``嘿嘿 各位老大`` 进来看看吧~~~ 首先,你看看脚本能不能运行,运行的话计数器会增加的,如果不能运行的话,肯定是有语法错误,那把全部代码复制到终端里面运行看看,会提示你那行有错误的
其次,如果能运行但得不到正确结果的话,你要看脚本的算法是不是恰当,逐条检查结果,就知道哪里有问题了
另外,put不能用于脚本里,只能在终端中使用,脚本里面要显示中间结果,最好用:log error 语句,然后去log里面看看是不是得到正确的结果 好像pr也不能用于脚本里,只能在终端中使用... 楼主的脚本好像是自动绑定mac吧...
用:foreach i in 的函数即可.... 谢谢` 各位大哥的详细解答``` 我试试去`` ^-^ :foreach i in= do={
:set name ;
:if(/ppp act find name="$name") do {
:set mac caller-id];
/ppp se set $name caller-id="$mac"}
}
这样写可以么``
呵呵 之前不知道怎么多了个echo```dos里面的东西都出来了`` 大概本来是想写else吧```
[ 本帖最后由 arica1985e 于 2008-3-18 18:31 编辑 ] 为了写这脚本 在baidu找了不少资料``不过都很少``不知道那为朋友有详细点的ros脚本方面的资料```http://bbs.routerclub.com/redirect.php?goto=findpost&pid=180668&ptid=29682 这的也看过了 好像少了点`` 至今还不知道 "[ ] {} ().."等符号的要用在什么地方 我比较笨``就看别人的脚本 比较下 看有没什么规律呵呵`` echo是干什么的??? :)
之前不知道怎么多了个echo```dos里面的东西都出来了`` 大概本来是想写else吧``` :time: :time: 给你一个我之前写的自动绑定mac地址的脚本吧
#######################################################
#
#最后修改时间:2007.11.24
#修改人:linyi
#e-mail: nnlinyi#163.com
#2007-11-24每隔半小时自动绑定上网客户mac地址。
#不需要绑定的客户请在帐号处加标签“bbd”
#######################################################
:foreach i in= do={
:set name ;
:set caller-id ;
:set sfbd comment];
:set sfid caller-id];
:if ((!($sfbd="bbd")) && ($sfid="")) do={/ppp secret set caller-id=$caller-id};
}
[ 本帖最后由 木木 于 2008-3-20 00:26 编辑 ] 谢谢楼上的朋友`
不过有点疑问``find name=$name 不是应该写成 find name="$name"才对么``
好像变量为文本类型的时候引用的时候应该加引号的` 不知道对不对` 我之前写了好几变好象都是因为没加引号才没有成功`` 这个我也没+"",好像也没有问题,不过13楼的脚本,有事没事把act找个遍,而且每找一次都要运行相关脚本,在用户数多的时候,cpu负担不小.....
页:
[1]
2