如何在escript或Erlang中设置环境变量

bgibtngc  于 2022-12-08  发布在  Erlang
关注(0)|答案(2)|浏览(158)

我可以在执行escript脚本时设置一个环境变量,以便在同一环境中执行的其他应用程序可以读取该环境变量吗?(因此,在escript或Erlang中是否有与bash命令export等效的命令?)

5ssjco0h

5ssjco0h1#

进程不能影响其父进程或其父进程的其他子进程的环境。
如果您想修改由脚本启动的进程的环境(通过fork或类似的方式,尽管OP告诉我这是不受支持的),可能有类似setenv的东西可用。

0ejtzxu1

0ejtzxu12#

我还没有在相同的Erlang进程中用其他应用程序测试过这个,但是至少在一个应用程序中,你可以在Erlang代码中设置一个环境变量:

os:putenv("EXAMPLE_VAR", "example_val").

用以下语句读回:

os:getenv("EXAMPLE_VAR").

在Elixir中,您可以使用相同的Erlang模块:

:os.putenv('EXAMPLE_VAR', 'exmaple_val')
:os.getenv('EXAMPLE_VAR')

或者使用System模块,它有一个更符合习惯的Elixir接口:

System.put_env("EXAMPLE_VAR", "example_val")
System.get_env("EXAMPLE_VAR")

相关问题