LUCI笔记

LUCI学习笔记

  1. LUCI的跳转方式
    其实这个会看源码的都不难找出来,这里就当是为大家省点事儿吧,上代码:

local http = require ‘luci.http’
local dsp = require ‘luci.dispatcher’

http.redirect(dsp.build_url(“/admin/system/wifitest”))
http和dsp是分别加载LUCI的HTTP处理类和基础类
最后调用HTTP处理类中的重定向函数redirect()来进行跳转,而为了URL格式规范,所以这里使用了基础类中的build_url()函数来生成规范的URL路径。
2. LUCI 运行Linux命令的方法
LUCI作为openwrt的内嵌CGI处理框架,它有自己的方法去的直接执行Linux的一些命令,以达到一些直接操控的目的。
在我接触期间,发现有三种方法可以执行Linux的命令:

使用io.execute():

io.execute(“mkdir /data/test”) – 该函数一次只能执行一条Linux命令,好处是直接就可以用,而不用先加载类库
使用luci.util.exec():

luci.util.exec(“mkdir /data/test”) – 该函数也是一次只能执行一条Linux命令,这个是依赖于LUCI里的util的类,可以像这样直接写,也可以先加载类库,如下:
local util = require ‘luci.util’; util.exec(“mkdir /data/test”)
调用system模块里的fork_exec()函数

local sys = require ‘luci.controller.admin.system’; sys.fork_exec(“mkdir /data/test; chmod 0755 /data/test”)
– 该函数可以多句代码进行连续执行,或是你想做一些连贯操作的话,那么这个函数我觉得还是挺好用的。
…其实……没有了。LUCI我没有还有好些内容没搞懂,关于执行Linux命令的方法,也只找到这几个。哦,还有,若是你不想加载库,也可以将fork_exec()移植到的你当前的控制器中,然后就能直接调用了。
3. LUCI字符串的截取和去除空格的函数(网上摘录)
LUCI里面,也可以说是Lua里,对于字符的操作比较少,我是PHP出身,PHP里常用的一些函数LUCI里面都没有,都要自己去定义,在这里共享一下我找到的字符串截取和去除字符串空格的函数。上代码:

function trim(s)
return (string.gsub(s, “^%s*(.-)%s*$”, “%1”))
end

– 字符串为lua: v1.122
function cut_name(s)
s_index = string.find(s, “:”)
str = string.sub(s, s_index+1)
str = trim(str)
return str
end

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值