精华内容
下载资源
问答
  • 1,lua简介Lua 是一个小巧的脚本语言。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua脚本可以很...

    1,lua简介

    Lua 是一个小巧的脚本语言。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门、愤怒的小鸟等。

    2,lua名言

    在Lua中,一切都是变量,除了关键字。

    3,lua语法

    3.1 注释

    3.1.1 单行注释

    单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"//"。

    3.1.2 多行注释

    多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止。这种注释相当于C语言中的"/*…*/"。在注释当中,"[["和"]]"是可以嵌套的。

    3.2 语句结构

    3.2.1 语句分隔

    在Lua中,语句之间可以用分号";"隔开,也可以用空白隔开。一般来说,如果多个语句写在同一行的话,建议总是用分号隔开。

    3.2.2 语句块

    do print("Hello") end在Lua中,语句块是用do 和 end 括起来的;而在C中是用"{"和"}"括起来的。

    3.3 控制语句

    3.3.1 if语句

    -- if 条件 then ... elseif 条件 then ... else ... end

    if 1+1=2 then print("true")

    elseif 1+2~=3 then print("true")

    else print("false") end

    3.3.2 while语句

    -- while 条件 do ... end

    while 1+1~=2 do print("true") end

    3.3.3 repeat语句

    -- repeat ... until 条件

    repeat print("Hello") until 1+1~=2

    3.3.4 for语句

    注意一下,for的循环变量总是只作用于for的局部变量;当省略步进值时,for循环会使用1作为步进值。

    使用break可以用来中止一个循环。

    -- for 变量=初值, 终点值, 步进 do ... end

    for i = 1, 10, 2 do print(i) end

    -- for 变量1, 变量2, ... 变量n in 表或枚举函数 do ... end

    for a,b in mylist do print(a, b) end

    3.4 赋值语句

    赋值语句在Lua被强化了。它可以同时给多个变量赋值。

    a,b,c,d=1,2,3,4 --分别赋值

    a,b=b,a -- 多么方便的交换变量功能啊

    在默认情况下,变量总是认为是全局的。假如需要定义局部变量,则在第一次赋值的时候,需要用local说明。

    local a,b,c = 1,2,3 -- a,b,c都是局部变量

    3.5 运算符号

    3.5.1 数值运算符号

    符号

    含义

    +

    加法

    -

    减法

    *

    乘法

    /

    除法

    ^

    乘方

    ..

    字符串拼接,如:"This a " .. "string." -- 等于 "this a string"

    3.5.2 比较运算符号

    符号

    含义

    <

    小于

    >

    大于

    <=

    小于等于

    >=

    大于等于

    ==

    等于

    ~=

    不等于

    3.5.3 逻辑运算符号

    在Lua中,只有false和nil才计算为false,其它任何数据都计算为true,0也是true!

    符号

    含义

    and

    a and b:如果a为false,则返回a;否则返回b

    or

    a or b:如果 a 为true,则返回a;否则返回b

    not

    非 在Lua中这是很有用的特性,也是比较令人混洧的特性。

    我们可以模拟C语言中的语句:x = a? b : c,在Lua中,可以写成:x = a and b or c。

    最有用的语句是: x = x or v,它相当于:if not x then x = v end 。

    3.6 变量

    3.6.1 关键字

    关键字是不能做为变量的。

    and

    break

    do

    else

    elseif

    end

    false

    for

    function

    if

    in

    local

    nil

    not

    or

    repeat return

    then true

    until

    while

    3.6.2  变量类型

    可以用type()函数来检查变量类型。Lua支持的类型有以下几种:

    类型

    说明

    Nil

    空值,所有没有使用过的变量,都是nil。nil既是值,又是类型。

    Boolean

    布尔值,只有两个有效值:true和false

    Number

    数值,在Lua里,数值相当于C语言的double

    String

    字符串,如果你愿意的话,字符串是可以包含"\0"字符的(这和C语言总是以"\0"结尾是不一样的)

    Table

    关系表类型,这个类型功能比较强大,请参考后面的内容。

    Function

    函数类型,不要怀疑,函数也是一种类型,也就是说,所有的函数,它本身就是一个变量。

    Userdata

    这个类型专门用来和Lua的宿主打交道的。

    宿主通常是用C和C++来编写的,在这种情况下,Userdata可以是宿主的任意数据类型,常用的有Struct和指针。

    Thread

    线程类型,在Lua中没有真正的线程。Lua中可以将一个函数分成几部份运行。

    关于字符串String:

    示例:下面的语句所表示的是完全相同的字符串:

    a = 'alo\n123"'

    a = "alo\n123\""

    a = '\97lo\10\04923"'

    a = [[alo

    123"]]

    a = [==[

    alo

    123"]==]字符串是用双引号或单引号来括起一个字符串的。

    关于转义字符。在Lua中,可以用另一种表示方法:用"[["和"]]"将多行的字符串括起来。(lua5.1: 中括号中间可以加入若干个"="号,如 [==[ ... ]==],详见下面示例)。值得注意的是,在这种字符串中,如果含有单独使用的"[["或"]]"就仍然得用"\["或"\]"来避免歧义。当然,这种情况是极少会发生的。

    关于关系表类型Table:

    关系表类型,这是一个很强大的类型。我们可以把这个类型看作是一个数组。只是C语言的数组,只能用正整数来作索引;在Lua中,你可以用任意类型来作数组的索引,除了nil。同样,在C语言中,数组的内容只允许一种类型;在Lua中,你也可以用任意类型的值来作数组的内容,除了nil。

    Table的定义很简单,它的主要特征是用"{"和"}"来括起一系列数据元素的。

    T1 = {} -- 定义一个空表

    T1[1]=10 -- 然后我们就可以象C语言一样来使用它了。

    T1["John"]={Age=27, Gender="Male"}

    这一句相当于:

    T1["John"]={} -- 必须先定义成一个表,还记得未定义的变量是nil类型吗

    T1["John"]["Age"]=27

    T1["John"]["Gender"]="Male"

    当表的索引是字符串的时候,我们可以简写成:

    T1.John={}

    T1.John.Age=27

    T1.John.Gender="Male"

    T1.John{Age=27, Gender="Male"}

    关于Function:

    function add(a,b) -- add 是函数名字,a和b是参数名字

    return a+b -- return 用来返回函数的运行结果

    end请注意,return语言一定要写在end之前。假如我们非要在中间放上一句return,那么就应该要写成:do return end。

    函数也是变量类型吗?上面的函数定义,其实相当于:

    add = function (a,b) return a+b end当重新给add赋值时,它就不再表示这个函数了。我们甚至可以赋给add任意数据,包括nil (这样,赋值为nil,将会把该变量清除)。Function是不是很象C语言的函数指针呢?

    返回多个值:

    function s()

    return 1,2,3,4

    end

    a,b,c,d = s() -- 此时,a = 1, b = 2, c = 3, d = 4

    展开全文
  • linux 安装lua

    2020-11-04 16:21:36
    linux 安装lua 新建目录 放置压缩包 cd /usr/local mkdir server 下载压缩包 解压文件 curl -R -O ...此时需要安装lua相关依赖库的支持,执行如下命令即可: yum install libtermcap-de

    linux 安装lua

    新建目录 放置压缩包

    cd /usr/local
    mkdir server
    

    下载压缩包 解压文件

    curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
    tar zxf lua-5.3.5.tar.gz
    

    进入lua目录 进行安装

    cd lua-5.3.5
    make linux test
    

    注意:此时安装,有可能会出现如下错误:

    在这里插入图片描述

    此时需要安装lua相关依赖库的支持,执行如下命令即可:

    yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
    

    此时再执行lua测试看lua是否安装成功

    [root@localhost ~]# lua
    Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
    
    展开全文
  • 本文主要向大家介绍了Linux运维知识之Linuxlua开发环境安装及安装luafilesystem,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。1.先安装lua的相关依赖安装C开发环境由于gcc包需要依赖binutils...

    本文主要向大家介绍了Linux运维知识之Linux下lua开发环境安装及安装luafilesystem,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

    1. 先安装 lua 的相关依赖

    安装 C 开发环境

    由于 gcc 包需要依赖 binutils 和 cpp 包,另外 make 包也是在编译中常用的,所以一共需要 9 个包来完成安装,因此我们只需要执行 9 条指令即可:

    gcc:命令未找到(解决方法)

    yum install cpp

    yum install binutils

    yum install glibc

    yum install glibc-kernheaders

    yum install glibc-common

    yum install glibc-devel

    yum install gcc

    yum install make

    yum install readline-devel

    2. 安装 lua5.1.5

    下载地址:http://www.lua.org/ftp/

    tar -zxvf lua-5.1.5.tar.gz

    cd lua-5.1.5

    vi Makefile

    设置 INSTALL_TOP= /usr/local/lua

    make linux

    make test

    make install

    rm -rf  /usr/bin/lua

    ln -s /usr/local/lua/bin/lua /usr/bin/lua

    ln -s /usr/local/lua/share/lua /usr/share/lua

    设置环境变量:

    vim /etc/profile

    添加:

    export LUA_HOME=/usr/local/lua

    export PATH=$PATH:$LUA_HOME/bin

    环境变量生效:

    source /etc/profile

    3、安装 luarocks

    是一个 Lua 包管理器,基于 Lua 语言开发,提供一个命令行的方式来管理 Lua 包依赖、安装第三方 Lua 包等。

    地址:https://github.com/luarocks/luarocks

    使用 luarocks-2.2.1 版本在我机器上没有问题,但是使用 luarocks-2.4.2 出现问题

    wget http://luarocks.org/releases/luarocks-2.2.1.tar.gz

    tar -zxvf luarocks-2.2.1.tar.gz

    cd luarocks-2.2.1

    ./configure --with-lua=/usr/local --with-lua-include=/usr/local/lua/include

    设置环境变量:

    export LUA_LUAROCKS_PATH=/usr/local/luarocks-2.2.1

    export PATH=$PATH:$LUA_LUAROCKS_PATH

    make & make install

    4、安装 luafilesystem

    是一个用于 lua 进行文件访问的库,可以支持 lua 5.1 和 lua5.2,且是跨平台的,在为 lua 安装 lfs 之前需要先安装luarocks。因为自己的需求刚好需要这模块。

    地址:https://github.com/keplerproject/luafilesystem

    文档:http://keplerproject.github.io/luafilesystem/index.html

    luarocks install luafilesystem

    5、测试

    测试 lua 是否安装成功

    lua -v

    结果:

    Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio

    测试 luafilesystem 是否安装成功

    a.lua

    local lfs = require"lfs"

    function Rreturn(filePath)

    local time = os.date("%a, %d %b %Y %X GMT", lfs.attributes(filePath).modification)

    –打印文件的修改时间

    print(time)

    end

    Rreturn("/opt/lua/a.txt")

    a.txt

    a

    b

    c

    运行:

    lua  a.lua

    结果:

    Tue, 16  Sep 2017 9:43:13 GMT

    出现打印出时间的结果就意味着已经安装好了。

    当然以上这是在 Linux 安装的, Windows 上的其实比这还简单了,但是安装 luafilesystem 的话需要自己去下载个 lfs.dll ,然后把这个放到 lua 的安装路径去。很简单的,这里就不细说了。

    出现过的错误:

    [root@n1 lua-5.1.5]# make linux test

    cd src && make linux

    make[1]: Entering directory `/opt/lua-5.1.5/src'

    make all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses"

    make[2]: Entering directory `/opt/lua-5.1.5/src'

    gcc -O2 -Wall -DLUA_USE_LINUX   -c -o lapi.o lapi.c

    make[2]: gcc:命令未找到

    make[2]: *** [lapi.o] 错误 127

    make[2]: Leaving directory `/opt/lua-5.1.5/src'

    make[1]: *** [linux] 错误 2

    make[1]: Leaving directory `/opt/lua-5.1.5/src'

    make: *** [linux] 错误 2

    原因:最开始的那些依赖没安装。

    本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

    展开全文
  • Lua系列】linuxlua的安装

    千次阅读 2018-02-23 14:27:52
    (原2012年5月4日文章,博客解封后重新发出)工作需要lua,故记载linuxlua安装步骤,方便自己和后来者查用。(注:作者本人使用ubuntu11.04)具体步骤如下:(1)在lua官方网站http://www.lua.org/download.html...

    (原2012年5月4日文章,博客解封后重新发出)

    工作需要lua,故记载linux下lua安装步骤,方便自己和后来者查用。

    (注:作者本人使用ubuntu11.04)


    具体步骤如下:

    (1)在lua官方网站http://www.lua.org/download.html下载最新lua包;

    (2)快捷键ctrl+F2,输入gnome-terminal,打开终端;

    (3)安装ubuntu的C/C++编译环境,build-essential包含gcc/make/gdb和lib函数库等很多工具;

               sudo apt-get install build-essential

    (4)安装编译所需libreadline相关支持;

               sudo apt-get install libreadline5

               sudo apt-get install libreadline5-dev

    (5)编译安装

               tar xzvf lua-5.2.2.tar.gz

               cd到解压缩后的文件夹 lua-5.2.2

               make linux

               sudo make  install

    (6)输入 lua进行测试,如出现以下文字,则安装成功!        

         $ lua
         Lua 5.2.2 Copyright (C) 1994-2007 Lua.org, PUC-Rio
         >

    展开全文
  • Linux-Lua基础教学

    2021-09-12 10:52:37
    Lua基础教学 ...支持面向过程(procedure-oriented)编程和函数式编程(functional programming); 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象; 语言内置
  • linux系统lua安装

    2019-12-11 17:05:03
    安装步骤 curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz tar zxf lua-5.3.5.tar.gz ...此时需要安装lua相关依赖库的支持,执行如下命令即可: yum install libtermcap-devel ncurses-dev...
  • linux 安装 lua

    2014-01-15 15:36:01
    1.下载lua:# wget http://www.lua.org/ftp/lua-5.2.2.tar.gz2.解压安装包: # tar -zxvf lua-5.2.2.tar.gz# cd lua-5.2.23....目前支持的平台有如下:aix ansi bsd freebsd generic linux macosx min...
  • Linux-Lua高级教学

    2021-09-12 10:51:51
    Lua高级教学 Lua 协同程序 什么是协同? Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。 协同是非常强大的功能,...
  • Linux安装LUA脚本

    2019-05-02 13:36:43
    Lua是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究...
  • ngx_lua_module 是一个nginx http模块,它把 lua 解析器内嵌到 nginx,用来解析并执行lua 语言编写的网页后台脚本,可以用来实现灰度发布。另外淘宝的OpenResty也可...本篇文章只说在linux中安装lua_nginx_module模...
  • Nginx 的看家本领就是速度,Lua 的拿手好戏亦是速度,这两者的结合在速度上无疑有基因上的优势。最近一直再折腾这个,干脆就稍微整理下。以防后面继续跳坑!安装:1.先安装 lua 的相关依赖安装 C 开发环境 由于 gcc...
  • 1.下载lua : wget http://www.lua.org/ftp/lua-5.2.2.tar.gz 2.解压安装包: tar -zxvf lua-5.2.2.tar.gz cd lua-5.2.2.tar.gz 3.执行“make”命令。看看你的操作系统是否在...aix ansi bsd freebsd generic linux
  • Lua 是一个小巧的脚本语言。它具有轻量级、可扩展等优势。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。  LWT (Lua Web Tools) 可让你使用 Lua 开发 Web 应用,并可直接在 Apache 上运行。LWT 的...
  • linux-lua脚本入门

    千次阅读 2013-08-13 20:05:34
    Lua支持的类型有以下几种: 类型 说明 Nil 空值,所有没有使用过的变量,都是nil。nil既是值,又是类型。 Boolean 布尔值,只有两个有效值:true和false ...
  • Redis中使用Lua脚本(续)- Lua-cjson开源库的安装和使用问题原因解决方案 在Redis的lua脚本编写中,我们可能会用到json的序列化和反序列化。 Json序列化: -- RedisLuaCjsonEncode.lua文件 local userName = ...
  • 系统环境:CentOS-6.2-x86_64。Lua 是嵌入式脚本语言,应用场景很广泛。引自官网:Lua is used in many products and projects around the world, including ...LuaLinux 环境下的安装:wget http://www.lua.or...
  • Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 特性 轻量级: 它用标准C语言编写并以源代码形式开放,编译...
  • arm linux lua移植

    2018-09-27 20:15:02
    lua: lua home 1.下载lua源码 lua下载 lua-5.3.4.tar.gz 2.解压: tar xvf lua-5.3.4.tar.gz 3.修改makefile and luaconf.h $修改 lua-5.3.4/Makefile #INSTALL_TOP= /usr/local INSTALL_TOP= $(shell pwd)/out #...
  • linux下的lua安装

    2018-05-02 15:21:33
    1.下载lua包并解压wget -c http://www.lua.org/ftp/lua-5.3.0.tar.gz tar zxvf lua-5.3.0.tar.gz 2、下载libreadline相关支持sudo apt-get install libreadline5sudo apt-get install libreadline-gplv2-dev3...
  • linux系统下安装lua

    2021-03-06 08:48:15
    安装步骤,在linux系统中执行下面的命令。 下载lua包 : curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz ...此时需要安装lua相关依赖库的支持,执行如下命令即可 yum install libtermcap-devel ncurses-dev...
  • linux lua 安装 配置

    千次阅读 2013-09-09 10:50:27
    首先,从Lua的官网(http://www.lua.org/)下载最新发布包(PS:我下载的是lua-5.2.2.tar...其次,使用tar -xzvf /path-to-your-lua-tar-file-folder/lua-5.2.2.tar.gz命令解压缩,将得到一个lua-5.1.4文件夹。  第
  • ZeroBraneStudio:基于Lua的轻量级Lua IDE,具有代码完成,语法突出显示,实时编码,远程调试器和代码分析器; 在Windows,macOS和Linux支持Lua 5.1、5.2、5.3、5.4,LuaJIT和其他Lua解释器
  • 一、Lua是什么 Lua 是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo...
  • Linux下安装lua开发环境

    千次阅读 2018-11-06 17:18:41
    1.下载lua包并解压 wget -c http://www.lua.org/ftp/lua-5.3.5.tar.gz ...2、下载libreadline相关支持 sudo apt-get install libreadline5 sudo apt-get install libreadline-gplv2-dev   3...
  • 如果用户经常的使用该软件和cocos2d-x进行游戏的开发,可以对各种代码的问题解决,而且也对lua引擎支持,需要的朋友不要错过!软件功能支持对需要使用的文本进行选择软件是采用了目前比较流行...
  • linux下的lua开发环境搭建

    千次阅读 2016-08-11 15:56:11
    1、到http://www.lua.org/download.html官网去下载lua的安装包,这里下载的是lua-5.3.0,下载的安装包名字是lua-5.3.0-tar.gz,将压缩包放至某个目录下 2、在Ubuntu下cd到改压缩包的位置...make linux 编译链接库 mak
  • Linux 环境下 Lua 安装

    千次阅读 2012-07-30 14:14:06
    Lua 是嵌入式脚本语言,应用场景很广泛。 引自官网:Lua is used in many products and projects around the world, including several well-known games。 官网地址:http://www.lua.org。 Lua 的精髓:...
  • linux下安装lua问题

    2014-10-28 21:44:04
    前几天在linux下编译安装
  • Linux下安装lua开发环境 Ubuntu 1.下载lua包并解压 wget -c http://www.lua.org/ftp/lua-5.3.5.tar.gz tar zxvf lua-5.3.5.tar.gz 2、下载libreadline相关支持 sudo apt-get install libreadline5 sudo ...
  • 由于工作需要,我编写过一个解析内部通信协议的wireshark的插件,插件是使用lua语言编写的,所以wireshark必须要支持lua接入才行。...但是,在Linux下就不一定支持了。我们公司使用的是CentOS的操作系统,默...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,576
精华内容 9,430
关键字:

linux如何支持lua

linux 订阅