Luci之uci API函数

参考:http://wiki.openwrt.org/doc/techref/uci#api

2.增删查改函数.

定义local x = luci.model.uci.cursor()

个人理解这个函数是提供uci的API的句柄

以下是对配置文件的增删查改

2.1增.

x:set("config","name","type") --增加一个section

x:set("config","sectionname","option","exp") --在section下增加配置

参数说明

config --- 配置文件的名字,配置文件位于/etc/config/下

name --- 配置文件中某个类型的具体名字

type --- 配置文件中类型(type)

option -- 具体配置

exp ---配置文件中具体参数类型的值

例:

#-----------------------------------------------------

x:set("wificonfig","0","wifi")

config wifi '0'

#-----------------------------------------------------

x:set("wificonfig","0","ip","192.168.0.1")

option ip '192.168.0.1'

#----------------------------------------------------

#以上两个函数联合起来如下:

#-----------------------------------------------------

config wifi '0'

     option ip '192.168.0.1'

2.2 删

x:delete("config","section") --删除section

x:delete("config,"section","option") -- 在section下删除option

删除某个section

2.1中的config wifi '0'直接可以用此函数删除

x:delete("wificonfig","wifi")

2.3查

x:foreach("config","type","function(s) ... end") -- 遍历整个config文件

x:get("config","sectionname","option") ---获得option的值

在foreach中有个两个变量

s[".type"] -->section type

s[".name"] -->section name

其中s[".name"] 就是x:get的第二个参数

例:有如下一个配置文件

config globals '0'

     option hostname 'iphone'

     option ip '192.168.0.1'

     option mac '00:11:22:33:44:55:66'

config globals '1'

     option hostname 'iphone1'

     option ip '192.168.0.2'

     option mac '00:11:22:33:44:55:77'

遍历并且打印每一个option

x:foreach("wificonfig","globals",function(s)

     local lcName = s[".name"]

     local lcHostname = x:get("wificonfig",lcName,"hostname")

     local lcIp = x:get("wificonfig",lcName,"ip")

     local lcMac = x:get("wificonfig",lcName,"mac")

     print("hostname = " .. lcHostname .. ",ip = " .. lcIp .. ",mac= " .. lcMac)

end

)

2.4修改

直接用2.1中的函数即可

3.commit函数

当修改后的配置文件,必须调用x:commit函数才能生效。

4.位置插入函数

x:reorder("config","sectionname",position)

将某个section放到postion位置(配置的section是从0开始计数)

猜你喜欢

转载自blog.csdn.net/qq_19004627/article/details/82143917