如何使用lua设置bash环境变量

Dee*_*pak 2 lua environment-variables

我是lua脚本功能的新手。我尝试使用

  1. os.execute(“ export MY_VAR = 10”)
  2. io.popen(“导出MY_VAR = 10”)

来自lua脚本。

我尝试在执行lua脚本后使用echo $ MY_VAR从外壳读取MY_VAR变量,但是我看不到MY_VAR设置为10。

我们如何使用lua脚本设置环境变量?

Eta*_*ner 5

您的问题不是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 (2认同)