在Lua 5.3脚本中设置shell环境变量

3

Windows - Lua的嵌入实例 - 仅共享环境 - 语言的最近变化。

Lua脚本的结果需要提供给嵌入式Lua 5.3解释器的Windows主机应用程序。大多数情况下,我们将结果写入文本文件或剪贴板,并在脚本完成后让主机读取它们。另一种方法是在当前环境中设置一个envar(环境变量),主机和解释器共享该变量。这将消除文件IO和一些字符串复制操作。

Lua具有os.getenv()但没有os.setenv(),因为后者不是ANSI-C的一部分。声称能够更改环境变量的外部模块似乎会更改_G中的局部副本,而不是真正的主机当前环境中的变量。(由于我没有阅读所有来源,我在此根据它们的封面来判断这些书籍。)此外,自版本5.3以来,全局变量_G已不存在,我认为这意味着这些模块中的大多数将与当前版本的Lua不兼容。

问题:哪个模块允许更改当前环境中的变量,并与Lua 5.3兼容?


可能是如何使用Lua设置bash环境变量的重复问题。 - Mike Corcoran
第一行总结了我的问题与其他问题不同的四个要点。 - user123365
可以尝试使用我的 https://github.com/moteus/lua-environ。但它不允许更改某些外部进程的环境,只能更改当前进程的环境。 - moteus
子进程无法更改其父进程的环境。 - lhf
1个回答

0

这个函数存在缓冲区溢出的问题。我大约4年前就报告了这个问题。测试用例为 setenv('xxxx', ('1'):rep(1300) - moteus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接