2011-10-10 42 views
6

啓動erlang應用程序有沒有辦法將參數傳遞給除配置文件和應用程序以外的應用程序的根超級用戶:get_env/1?例如,通過命令行?使用參數

我以「erl -pa ebin -run appname」開始我的應用程序,然後通過TCP/IP與它通信。它偵聽的TCP端口在env部分中設置在ebin/appname.app中。現在我希望能夠告訴我的應用程序忘記它,並在命令行上監聽端口(例如「erl -pa ebin -run appname -env [{port,1234}]」)。有沒有標準化的模式?

問題是,我有時候決定應該在另一個非默認端口上啓動,以用於測試目的,並且每次更改.app文件只是屁股疼痛。

問候, dijxtra

回答

8

是。您可以通過命令行覆蓋的環境變量的值,使用:

erl -appname key value 

和檢索使用參數:

application:get_env(appname, key). 
+0

你很漂亮,謝謝你。這應該肯定會添加[這裏](http://www.erlang.org/doc/apps/kernel/application.html#get_env-1)。 – dijxtra