首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取Lua中的当前文件名

在Lua中,可以通过debug库中的getinfo函数来获取当前文件名。getinfo函数可以返回一个包含当前函数或者调用栈信息的table。通过设置参数"n"为"file",可以获取到当前文件名。

以下是一个示例代码:

代码语言:lua
复制
function getCurrentFileName()
    local info = debug.getinfo(2, "S")
    return info.source:sub(2)
end

local fileName = getCurrentFileName()
print("当前文件名:" .. fileName)

输出结果将会是当前Lua文件的文件名。

对于Lua的应用场景,Lua常被用作嵌入式脚本语言,特别适用于游戏开发、应用程序扩展和配置文件等领域。Lua具有简洁的语法和高效的执行速度,易于学习和使用。

腾讯云提供了云服务器CVM产品,可以用于部署和运行Lua脚本。您可以通过以下链接了解更多关于腾讯云云服务器CVM的信息:

腾讯云云服务器CVM产品介绍

希望以上信息对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在回调函数获取 WordPress 接口的当前优先级

下面开始教程: 如何获取 Hook 优先级 我们在 WordPress 进行开发的时候,肯定会使用到 WordPress 的 Hook,通过 add_filter 或者 add_action 把某个回调函数传递给某个...在回调函数,我们可以通过 current_filter 函数可以获取当前回调函数是在执行那个 Hook ,但是如果要获取当前回调函数优先级,WordPress 就没有相关的函数了,所以我自己写了一个...$hook->current_priority() : null; } 获取 Hook 优先级有什么用 我们可能要移除接口的某个回调函数,然后最后又要加回来,怎么处理呢?...如果和我一样为了偷懒,这前后的移除和添加的回调函数是同一个,那就要在回调函数判断当前的优先级了: function wpjam_filter_content_save_pre($content){...该功能已经整合到 WPJAM Basic 插件,并已免费提供下载,简单勾选或者设置下即可开启!

52830
  • 如何在 Go 函数获取调用者的函数名、文件名、行号...

    背景 我们在应用程序的代码添加业务日志的时候,不论是什么级别的日志,除了我们主动传给 Logger 让它记录的信息外,这行日志是由哪个函数打印的、所在的位置也是非常重要的信息,不然排查问题的时候很有可能就犹如大海捞针...//获取的是 CallerA函数的调用者的调用栈 pc1, file1, lineNo1, ok1 := runtime.Caller(1) } 函数的返回值为调用栈标识符、带路径的完整文件名...、该调用在文件的行号。...获取调用者的函数名 runtime.Caller 返回值第一个返回值是一个调用栈标识,通过它我们能拿到调用栈的函数信息 *runtime.Func,再进一步获取到调用者的函数名字,这里面会用到的函数和方法如下...总结 今天介绍了通过 runtime.Caller 回溯调用栈获取调用者的信息的方法,虽然强大,不过频繁获取这个信息也是会对程序性能有影响。

    6.5K20

    Lua模块和包

    对于一个Lua语言模块来说,其内部的名称并不要求是固定的,因此通常修改.lua文件的文件名就够了。不过,我们却无法修改C标准库的二进制目标代码luaopen_*函数的名称。...路径模板以在大所述操作系统很少被用于文件名的分号隔开。例如,考虑如下路径: ?;?.lua;c:\windows\?;/usr/local/lua/?/?....函数require用于搜索Lua文件的路径是变量package.path的当前值。当package模块被初始化后,它就把变量package.path设置成环境变量LUA_PATH_5_3的值。...之后,该函数遍历路径的所有组成部分,也就是每一个不含分号的最长匹配。对于每一个组成部分,该函数使用模块名来替换问号得到最终的文件名,然后检查相应的文件是否存在。...= i, add = add, sub = sub, mul = mul, div = div, tostring = tostring, } 这种方式的有点在于,无须在每一个标识符增加前缀

    75230

    Lua连续教程之Lua反射

    如果函数定义在一个字符串(通过调用load),那么source就是这个字符串;如果函数定义在一个文件,那么source就是使用@作为前缀的文件名。...Lua语言以一种不影响程序执行的形式来保存调试信息,至于获取这些调试信息的效率则是次要的。为了实现更好的性能,函数getinfo有一个可选的第二参数,该参数用于指定希望获取哪些信息。...该函数返回两个值,变量名和变量的当前值。如果变量索引大于活跃变量的数量,那么函数getlocal返回nil。如果栈层次无效,则会抛出异常。...一个更精巧的跟踪器可以使用函数getinfo获取当前文件名并添加到输出: function trace(event,line) local s = debug.getinfo(2).short_src...假设我们要分析的程序位于一个文件,且用户通过参数把该文件名传递个性能分析器,如下: % lua profile main-prog 这样,性能分析器就可以从arg[1]得到文件名、设置钩子并运行文件

    2.7K10

    Lua 语法基础 | Nmap 脚本

    解释器在处理参数,会查找两个环境变量,一个是 LUA_INIT_5_3 ;另一个是LUA_INIT 。...局部变量和代码块 7.1 局部变量和代码块 Lua 语言的变量默认情况下是全局变量 ,所有的全局变量在使用必须声明 局部变量生小范围仅限于声明他的代码块 使用 local 来建立局部变量 7.2 控制结构...= nil 13.1.1 模块重命名 如果我们需要导入不同版本的一个模块,那么我们可以采用重命名的方式 如果是 Lua 的模块,那么直接修改模块的文件名就可以了。...13.1.2 搜索路径 Lua 查找模块是使用一个叫模板的东西,其实就是一段带有可选问号的文件名 ----------------------- > package.path /usr/local/share...这个表可能具有以下字段 : source : 说明函数定义的位置,如果定义在字符串(调用load),那么字段的值为这个字符串,如果被定义在文件,那么就是这个函数所在的文件名 short_src :

    2.1K50

    Lua输入输出

    由于Lua语言强调可移植性和嵌入性,所以Lua语言本身并没有提供太多与外部交互的机制。...在真实的Lua程序,从图形、数据库到网络的网络的访问等大多数I/O操作,要么游宿主程序实现,要么通过不包括在发行版的外部库实现。...因为Lua语言可以高效地处理长字符串,所以在Lua语言编写过滤器的一种简单技巧就是将整个文件读取到一个字符串,然后对字符串进行处理,最后输出结果为: t = io.read("a") -- 读取整个文件...函数seek用来获取和设置文件的当前位置,常常使用f:seek(whence,offset)的形式来调用,其中参数whence是一个指定如何使用偏移的字符串。...函数os.getenv用于获取某个环境变量,该函数的输入参数是换环境变量的名称,返回值为保存了该环境变量对应值的字符串: print(os.getenv("HOME")) -- /home/lua

    72620

    【100个 Unity实用技能】 | Lua获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前

    获取当前时间戳,时间戳转换为时间格式、时间戳转换为多久之前 在Lua我们有时候时间相关的内容,如获取当前的时间戳,将时间戳转换为时间格式,将时间戳转换为多久之前等。...主要使用了Lua 的 os.time 函数和 os.tade 函数。 Lua 标准库中提供了关于时间的函数os.time()和os.date(),这两个函数使用起来还是有需要注意的地方的。...1.Lua获取当前时间戳方法: local t = os.time() 直接在Lua执行此方法,可以获取到一个当前时间戳(也就是从1970年到当前时间为止的秒数) 2.将时间戳转换为时间格式方法:...str =os.date("%Y-%m-%d %H:%M:%S",t) return str end 3.将时间格式转换为时间戳方法: local t = os.time( { --获取指定时间的时间戳...--时间转换成多久,传入时间戳t function UIUtil.getTimeLongAgo(t) local str = "" if t ~= nil then if

    1.8K40

    Lua连续教程之Lua资源管理

    在之前的实现,我们将DIR的示例当做局部变量,并在或获取最后一个文件名后释放了它。而在新的实现,由于必须通过多次调用来查询该值,因此不能把DIR的实例保存到局部变量。...此外,不能在获取最后一个文件名后再释放DIR的示例,因为如果程序从循环中跳出,那么迭代器永远不会获取最后一个文件名。...luaL_newlib(L,dirlib); return 1; } 上述代码很简单,它从上值获取DIR结构体的地址,然后调用readdir读取下一个元素。...*L = xpu -> L; /* 从回调函数表获取处理函数 */ lua_getfield(L,3,"CharacterDara"); if (lua_isnil(L,-1)) { /*...在获取Lua状态后,处理函数就可以访问由lxp_parse设置的位于栈索引3位置的回调函数表,以及位于栈索引1位置的解析器。然后,该函数就可以用解析器和字符数据作为参数调用Lua对应的处理函数了。

    80320

    7 月最新编程排行榜:万年不变的三,啥时候能是头?

    点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 近日,TIOBE 公布了最新的编程指数信息。三的编程语言依是 Python、 C 和 Java。...在主页君记忆三基本是这 3 个人在变来变去的当第一。 上个月,TIOBE 指数没有什么变化。排名 4 的语言 Python、C、Java 和 C++ 现在总共占据了将近 50% 的市场份额。...Fortran 和 Matlab 再次挤掉 Lua 和 Prolog 进入 20 名。今年已经过去了一半,TIOBE 2022 年的年度编程语言“候选人”是 Python、C、C++ 和 C#。...此外,TIOBE 的 CEO 认为诸如 Rust、Dart、Kotlin 或者 TypeScript 这些相对较新的热门语言会进入 20 名。...2022 年 7 月编程语言榜 20 名 TOP 10 编程语言 TIOBE 指数走势 说明 TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新。

    33220

    vim 从嫌弃到依赖(12)——打开及保存文件

    开始的准备 先来介绍一下vim的工作目录的概念。我们知道进程都有自己的工作目录,后续需要操作某个目录的时候,可以根据这个工作目录使用相对路径。...find命令 即使:edit 命令有% 这种操作来简便输入,但是在打开其他目录的文件时仍然需要输入完整的目录和文件名,这个操作也是挺繁琐的。...操作系统,有一个PATH 环境变量,输入命令的时候,他会在PATH 所指定的目录查找对应命令。vim也有类似的概念。 vim可以使用:find,根据输入的文件名打开文件。...你可能会问,如果项目中有相同的文件名呢,这个项目里面没有同名文件,这里我们在lua/basic 目录中新建一个init.lua 这样它就与根目录下的init.lua 相同了。...还记得之前讲过怎么在vim执行shell命令吗,不想退出vim,又想在保存创建目录,可以使用这招, :!mkdir -p random/111, 然后再执行写入。

    1.8K10

    一个可以让黑客头疼的系统

    虽然每个请求的真实处理还是在 golang 完成,但是每个请求的一些临时变量都会在 lua 虚拟机走一遍。...-- 文件名juggler.test.com.lua 当攻击请求的业务域名是juggler.test.com时匹配该插件 local var = rock.var local resp = rock.resp...丰富三方插件库可自行定义 juggler lua 插件除了 lua 本身的一些变量,其他的都是由 golang 实现后注册进 lua 虚拟机供 lua 进行调用的。...) // golang定义的可在lua中使用的生成随机数方法 var randFns = map[string]lua.LGFunction{ "rint" : rint, } func rint...2、http 请求:rock.var 包含了部分的当前请求的参数,具体参数见 golua/request.go,已经覆盖了常见的参数了 case "host": L.Push(lua.LString

    87030

    OpenResty的安装与使用

    OpenResty由四个核心组件构成,如下表所示: 组件名称 说明 Nginx Web服务器 LuaJIT Lua语言解释器 ngx_lua 处理HTTP协议,让Lua嵌入在Nginx运行 stream_lua...也是让Lua在Nginx运行,负责处理TCP/UDP协议 源码编译安装 使用的服务器信息: 系统 Ubuntu22.04 服务器 IP 172.16.183.131 安装OpenResty: 安装编译所需的软件包...1.21.4.1.tar.gz 编译OpenResty # 解压下载的源码包 tar -xf openresty-1.21.4.1.tar.gz # 进入目录 cd openresty-1.21.4.1/ # 编译配置...luajit lualib nginx pod resty.index site root@ubuntu:~/openresty-1.21.4.1# # 为了方便使用,将目录添加到环境变量...OpenResty开发 使用OpenResty开发简单的Web服务 nginx配置文件如下: # 文件名为hello.conf worker_processes 1; events { worker_connections

    52520

    Nginx高级应用:lua + OpenResty

    ,先从nginx本地缓存获取获取到直接响应 如果没有获取到,再次访问redis,我们可以从redis获取数据,如果有 则返回,并缓存到nginx 如果没有获取到,再次访问mysql 我们从mysql...获取数据,再将数据存储到redis。...; 创建文件,输入 print("hello"); 直接 cmd 运行: 执行命令:lua53 文件名.lua LUA的基本语法(了解) 介绍: lua有交互式编程和脚本式编程: 交互式编程就是...创建一个文件叫module.lua 别忘了中文乱码,文件格式设置ASCII码 module.lua -- 文件名为 module.lua -- 定义一个名为 module 的模块,和文件名一样!...require(“resty.http”) 就是这个lua模块负载发送请求, OpenResty 存在着很多的,lua脚本模块… 获取POST请求参数 跟get 非常类似… ngx.req.read_body

    21110

    涨薪5K必学高并发核心编程,限流原理与实战,分布式计数器限流

    access_auth_nginx.lua在拼接计数器的key时使用了Nginx的内置变量$remote_addr获取客户端的IP地址,最终在Redis存储访问计数的key的格式如下: count_rate_limit...在浏览器输入如下测试地址: http://nginx.server/access/demo/nginx/lua?seckillGoodId=1 10秒内连续刷新,第6次的输出如图9-5所示。...实战:Redis Lua分布式计数器限流 大家知道,Redis允许将Lua脚本加载到Redis服务器执行,可以调用大部分Redis命令,并且Redis保证了脚本的原子性。...在调用该脚本之前,首先要将其加载到Redis,并且获取其加载之后的sha1编码,以供Nginx上的限流脚本access_auth_evalsha.lua使用。...在浏览器访问以下地址: http://nginx.server/access/demo/evalsha/lua 10秒之内连续刷新,发现第10次之后请求被限流了,说明Redis内部的Lua限流脚本工作是正常的

    30920

    unity3d:vscode+luaide断点调试xlua

    如果你没有生成过调试配置 那么先生成 4.选择xlua调试 5.在vscode中找到LuaTestScript.lua.txt,下个断点,然后启动调试 6.unity 打开02..._U3DScripting文件夹下场景运行,可以看到vscode命中断点 调试自己的xLua工程 1.把LuaDebug.lua.txt放入到工程的Resources目录下 2.将assets...(luaScript.text, “LuaTestScript.lua”, scriptEnv); doString 方法的第二个参数为调试的文件名 因为Dostring 加载 需要将chunkName...告诉lua 这样才能在调试时获取到调试内容的路径 4.vscodeLuaTestScript.lua.txt 头部新增 local breakSocketHandle,debugXpCall =...require("LuaDebug")("localhost",7003) 这样运行时,此lua脚本就会去unity工程Resources文件查找第一步的LuaDebug.lua.txt,启动本地调试

    82610
    领券