Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 脚本语言Lua小试(安装及简单语法)

不经意看到这篇《Lua简明教程》,于是想尝试一下这个很轻量级的脚本,也号称性能最高的脚本语言。一、Lua 语言简介Lua(英语发音:/?lu??/)程序设计语言是一个简洁、轻量、可扩展的脚本语言,是葡萄牙语中“Luna”(月亮)的意思。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发(已经有20多个年头咯)。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。二、Lua 安装网上搜了一下,好像sudo apt-get、install lua5.2就可以。我是在Lua官网下载安装包安装的(我下载的lua-5.2.3.tar.gz):1. tar -xvf lua-5.2.3.tar.gz 后 cd lua-5.2.3 进入目录www.linuxidc.com @linuxidc:~/Public/lua-5.2.3$ ls      doc  Makefile  README  src很明显,Linuxer在看到README的情况下毋庸置疑的要看一下:www.linuxidc.com @linuxidc:~/Public/lua-5.2.3$ cat READMEThis is Lua 5.2.3, released on 11 Nov 2013.For installation instructions, license details, andfurther information about Lua, see doc/readme.html.这个README写的很简单,没有我们预想的那样写了如何安装或者如何使用等,但是它写明了想要学习Lua的更多信息,查看doc/readme.html文件,所以……  chromium-browser doc/readme.html打开看看呗。不出所料,打开的网页中有着About / Installing / Changes ...,所以我们略读一遍就能知道如何安装。2. make linux (这里make后跟着平台,我们当然要跟着linux咯)不幸的是……报错了:“ error:readline/readline.h:no such file or directory ”之前的博客中,我写过使用apt-file查询这种缺失文件的方法,有兴趣可以看看《cyclictest 测试以及原理浅谈》一文,在其中有详细的apt-file使用。apt-file search readline | grep readline.h可以很轻松地在结果中找到这条:“ libreadline6-dev: /usr/include/readline/readline.h ”,所以apt-get安装之(sudo apt-get install libreadline6-dev)!安装完成后,再使用 make linux 非常顺利!3. sudo make install此时,Lua已经安装完毕,我们可以使用这个神奇的脚本语言Lua了:www.linuxidc.com @linuxidc:~/Public/lua-5.2.3$ luaLua 5.2.3  Copyright (C) 1994-2013 Lua.org, PUC-Rio> print("Hello World")Hello World>作为一个脚本语言,它当然也可以写到脚本文件中运行:www.linuxidc.com @linuxidc:/tmp/test$ cat hello.lua#!/usr/local/bin/luaprint("Hello World")www.linuxidc.com @linuxidc:/tmp/test$ lua hello.luaHello Worldwww.linuxidc.com @linuxidc:/tmp/test$ chmod +x hello.luawww.linuxidc.com @linuxidc:/tmp/test$ ./hello.luaHello Worldwww.linuxidc.com @linuxidc:/tmp/test$三、Lua 语言基础3.1 注释-- 两个横线开始单行注释--[[    加上两个[和]表示多行注释。--]]3.2 变量类型Lua是一种动态类型语言,因此语言中没有类型的定义,不需要声明变量类型,每个变量自己保存了类型。Lua有八种基本类型:数值(number)        内部以double表示,Lua的数字只有double型,64bits,你不必担心Lua处理浮点数会慢(除非大于100,000,000,000,000),或是会有精度问题字符串(string)      总是以零结尾,但可以包含任意字符(包括零),因此并不等价于C字符串,而是其超集。字符串你可以用单引号,也可以用双引号或者上面注释时用到的[[ ]](类似于Python中的三引号,可以用于定义多行的字符串),还支持C类型的转义,比如: ‘a’ (响铃), ‘’ (退格), ‘f’ (表单), ‘ ’ (换行)>, ‘ ’ (回车), ‘ ’ (横向制表), ‘v’ (纵向制表), ‘\’ (反斜杠), ‘”‘ (双引号), 以及 ‘” (单引号)布尔(boolean)      只有“true”或者“false”两个值。数字0、""空字符串("")都是true!函数(function)      Lua的关键概念之一。不简单等同于C的函数或函数指针。表(table)                异构的Hash表。Lua的关键概念之一。userdata                用户(非脚本用户)定义的C数据结构。脚本用户只能使用它,不能定义。线程(thread)          Lua协作线程(coroutine),与一般操作系统的抢占式线程不一样。nil                            代表什么也没有,可以与C的NULL作类比,但它不是空指针。你访问一个没有声明过的变量,就是nil。例如 foo = anUnknownVariable  现在 foo = nil。 只有false和nil是false,其他的都是true,上面提到过包括0和空字符串在内都是true。> print(type(nil))
nil
> print(type(99.9+12))
number
> print(type(true))
boolean
> print(type("Hello World"))
string
> print(type(print))
function
> print(type{test = "test"})
table要注意的是:lua中的变量如果没有特殊说明,全是全局变量,那怕是语句块或是函数里。变量前加local关键字的是局部变量。theGlobalVar = 50local theLocalVar = "local variable" Lua 的详细介绍:请点这里
Lua 的下载地址:请点这里推荐阅读:Lua 语言 15 分钟快速入门 http://www.linuxidc.com/Linux/2013-06/86582.htmLua程序设计(第2版)中文 PDF http://www.linuxidc.com/Linux/2013-03/81833.htmLua程序设计(第二版)阅读笔记 http://www.linuxidc.com/Linux/2013-03/81834.htmNetBSD 将支持用 Lua 脚本开发内核组件 http://www.linuxidc.com/Linux/2013-02/79527.htmCentOS 编译安装 Lua LuaSocket http://www.linuxidc.com/Linux/2011-08/41105.htm