我是lua脚本功能的新手。 我尝试使用,如何使用lua设置bash环境变量
- os.execute( “出口MY_VAR = 10”)
- io.popen( “出口MY_VAR = 10”)
从LUA脚本。
我尝试阅读使用回声$ MY_VAR壳MY_VAR变量执行LUA脚本之后,但我没有看到MY_VAR越来越设置为10
我们如何设置使用Lua脚本中的环境变量?
我是lua脚本功能的新手。 我尝试使用,如何使用lua设置bash环境变量
从LUA脚本。
我尝试阅读使用回声$ MY_VAR壳MY_VAR变量执行LUA脚本之后,但我没有看到MY_VAR越来越设置为10
我们如何设置使用Lua脚本中的环境变量?
你的问题不是lua问题。你的问题是误解过程环境的工作原理。
运行os.execute
或io.popen
每次运行一个新过程与新环境。
因此,尽管你可能是正确设置在MY_VAR
处理环境(它会影响运行的是进程的子进程的任何进程)不会活过启动的过程中死亡,因此不能被视为通过任何其他进程。如果你想影响lua
进程的环境(这反过来会影响lua运行的进程的环境),那么你需要一个绑定到系统函数setenv
(lua本身并没有提供它不通过清洁 lua用于包括它的东西的C测试)。
是的。 luaposix中有一个'setenv'绑定:http://luaposix.github.io/luaposix/modules/posix.stdlib.html#setenv –
您可以做的一个解决方法是让Lua代码输出Bash脚本的内容,然后使用脚本的bash“source”或“eval”。 – hugomg