Как запустить приложение Erlang OTP и допустить передачу аргументов командной строки корнеумурующему приложению?
-
27-10-2019 - |
Вопрос
Quick 1 Liner: Как запустить приложение OTP и передать его командную строку?
Я хотел, чтобы я мог запустить приложение OTP в общем «Unix», имея возможность передавать аргументы командной строки, проанализированные Getopts. Итак, у меня есть Erlang Escript, который использует getopt Библиотека для обработки анализа аргументов командной строки.
Ответ Шино привел меня на правильный путь:
- У меня есть мой Escript Do the Getopts
- Затем Escript загружает описание приложения в память с помощью приложения: загрузка/1
- Затем я использую приложение: set_env/3 для хранения CLI Args
- Теперь запустите приложение с приложением: Start/2
- После запуска приложения аргументы можно получить через приложение: get_env/2
Решение
Вы также можете переопределить настройки среды приложения в командной строке:
erl -myapp foo bar ...
Это установит Application.get_env (myapp, foo) на «bar», переопределяет любое настройка App.config.
Другие советы
Вы можете использовать init:get_plain_arguments/0
Функция для доступа к аргументам командной строки (дополнительная).
Пример:
$ erl -sname example -extra extra args here
Erlang R15B (erts-5.9) [source] [64-bit] [smp:2:2] [async-threads:0] [kernel-poll:false]
Eshell V5.9 (abort with ^G)
(example@localhost)1> init:get_plain_arguments().
["extra","args","here"]
init:get_plain_argumets/0
Возвращает аргументы после -extra
опция в виде списка строк. Вариант sname
просто для объяснения, которое делает нет появляться в init:get_plain_argumets/0
.
Для получения более подробной информации см. Документ о init
модуль http://www.erlang.org/doc/man/init.html .