7
如何在Erlang中访问命令行标志(参数)作为环境变量。 (作为标志,而非argv)例如:Erlang:如何访问CLI标志(参数)作为应用程序环境变量?
RabbitMQ的CLI看起来像:
erl \
...
-sasl errlog_type error \
-sasl sasl_error_logger '{file,"'${RABBITMQ_SASL_LOGS}'"}' \
... # more stuff here
如果看一下sasl.erl
你看行:
get_sasl_error_logger() ->
case application:get_env(sasl, sasl_error_logger) of
% ... etc
通过某种未知的魔法sasl_error_logger
变量成为一个erlang元组!我试过在我自己的erlang application
中复制这个,但我似乎只能通过init:get_argument
访问这些值,它以字符串形式返回值。
如何通过命令行传递值并能够像erlang条件一样轻松访问它们?
UPDATE也为寻找,使用环境变量在“常规”方式使用os:getenv("THE_VAR")
艾伦,感谢您的提示。我的`.app`文件中有参数。好消息:我得到`.app`文件中指定的默认值。坏消息:我似乎无法在命令行上覆盖它。 – 2009-07-31 16:06:32