校园网&openwrt记(三)作为启动项

  由于对linux不是很熟,刚开始的时候就想到使用最简单的rc.local启动项和crontab来完成这个应用。写好获取权限脚本,然后在rc.local中写入它使它在其他服务项启动完后自己启动。并且写好网络检测脚本,在crontab中添加,使其每分钟运行一次,以达到断网后仍然可以重新获取权限并重新pppoe拨号。
  说起来和想的一样轻巧,但是做起来对于我这个linux新手来说可是头疼得很。当时,查了各种资料发现很多人写程序都是在ubuntu等发行版系统上写C然后交叉编译的,我当时差点就要这样搞了(后来也玩了下,这是后话)。说来也巧,当时由于手头紧,我买了一个较为便宜的路由,芯片是7620A的,而我的那个大神舍友买的是网件3800,既然接受了人家的吩咐,就要两个平台都要兼顾,想想要下两个TOOLS和SDK就有点蛋疼,于是就去思考有没有什么办法可以解决这个问题的,如果有一个像shell那样在每个不管在什么平台什么linux发行版都有的脚本语言就好了。后来经过认真查找,果然有这样的脚本语言——Lua重磅出场。当我邂逅这个小巧精妙的语言时,我深深的为它所震撼了,仅仅几百KB大小的它就能够做许多常用的任务,文件操作,socket连接,协程等等,重要的是openwrt的web管理界面的后台就是完全由lua写出来。
  当时发现了Lua之后,我二话不说就拿它作为该应用的开发语言了。立马上网查找它的教程,开始了Lua的学习之路。
  这里简单记录一下Lua的一些特点:

  • 声明的变量前没有local的都是全局变量,而且访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil(Lua中特殊的类型,他只有一个值:nil;一个全局变量没有被赋值以前默认值为nil;给全局变量赋nil可以删除该变量。)
g_name = "Alvin"     --全局变量
local name = "Jack"  --局部变量
print(g)             -->nil
print(g_name)        -->Alivin
  • Lua是动态类型语言,变量不要类型定义。Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。函数type可以测试给定变量或者值的类型。变量没有预定义的类型,每一个变量都可能为任一种类型的值。
print(type("Hello world")) --> string
print(type(10.4*3))        --> number
print(type(print))         --> function
print(type(type))          --> function
print(type(true))          --> boolean
print(type(nil))           --> nil
print(type(type(X)))       --> string
  • number表示实数,Lua中没有整数,它用double来保存数值。
  • Lua中字符串是不可以修改的。
  • 逻辑运算符有and or not。
    逻辑运算符认为false和nil是假(false),其他为真,0也是true。
    and和or的运算结果不是true和false,而是和它的两个操作数相关。
    而not的结果返回false或者true。
a and b      -- 如果afalse,则返回a,否则返回b
a or b       -- 如果atrue,则返回a,否则返回b
  • C语言中的三元运算符a ? b : c在Lua中可以这样实现:(a and b) or c
  • 连接运算符:两个点..
    字符串连接,如果操作数为数字,Lua将数字转成字符串。
print("Hello " .. "World")     --> Hello World
print(666 .. 666)              --> 666666
  • table的构造器是{},它的构造可以有多种形式:
t1 = {"a", "b", "c", "d"}               --索引:t1[1]="a", t1[2]="b" 索引从1开始
t2 = {x=0, y=0}                         --也可以t2={}; t2.x=0; t2.y=0; 来构造 
t3 = {['row']=0, ['column']=0}          --索引:t3['row']=0, t3['column']=0

每次调用构造函数,Lua都会创建一个新的table。
在构造函数中域分隔符逗号(”,”)可以用分号(”;”)替代,通常使用分号用来分割不同类型的表元素:

{x=10, y=45; "one", "two", "three"}
  • 单行注释用:“–”,多行注释用:“–[[ 这里是注释 –]]”
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值