lua 设置文件运行的环境
Posted LightSong@计海拾贝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua 设置文件运行的环境相关的知识,希望对你有一定的参考价值。
背景
在一个lua文件中书写的代码, 使用的变量, 需要设置其运行环境。
目的:
1、 不破坏全局环境。
2、 限定文件所使用的环境, 作为沙箱功能。
解法
限定运行空间环境的文件:
local m = {} m.dingzhiprint = function () print("nasView print") print(os.getenv("PWD")) end bbb = 1 print("dmenu="..dmenu) return m
加载上个文件的代码 (将dmenu的值,传入上个文件, 并限定只能在全局环境中读取):
function callfunc() local dmenu = "aaaa" local prog = _G.loadfile("newModule.lua") --check lua or chunk --local _env local env = setmetatable({dmenu=dmenu}, {__index=_G}) --local env = getfenv(1) if env then --_env = getfenv (prog) setfenv (prog, env) end prog () end callfunc()
以上是关于lua 设置文件运行的环境的主要内容,如果未能解决你的问题,请参考以下文章