首页 > 代码库 > lua 设置文件运行的环境

lua 设置文件运行的环境

背景

在一个lua文件中书写的代码, 使用的变量, 需要设置其运行环境。

目的:

1、 不破坏全局环境。

2、 限定文件所使用的环境, 作为沙箱功能。

解法

 

限定运行空间环境的文件:

local m = {}m.dingzhiprint = function ()    print("nasView print")        print(os.getenv("PWD"))endbbb = 1print("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 ()        endcallfunc()

 

lua 设置文件运行的环境