我可以在执行escript脚本时设置一个环境变量,以便在同一环境中执行的其他应用程序可以读取该环境变量吗?(因此,在escript或Erlang中是否有与bash命令export等效的命令?)
export
5ssjco0h1#
进程不能影响其父进程或其父进程的其他子进程的环境。如果您想修改由脚本启动的进程的环境(通过fork或类似的方式,尽管OP告诉我这是不受支持的),可能有类似setenv的东西可用。
setenv
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
System.put_env("EXAMPLE_VAR", "example_val") System.get_env("EXAMPLE_VAR")
2条答案
按热度按时间5ssjco0h1#
进程不能影响其父进程或其父进程的其他子进程的环境。
如果您想修改由脚本启动的进程的环境(通过fork或类似的方式,尽管OP告诉我这是不受支持的),可能有类似
setenv
的东西可用。0ejtzxu12#
我还没有在相同的Erlang进程中用其他应用程序测试过这个,但是至少在一个应用程序中,你可以在Erlang代码中设置一个环境变量:
用以下语句读回:
在Elixir中,您可以使用相同的Erlang模块:
或者使用
System
模块,它有一个更符合习惯的Elixir接口: