Команды Erlang Erl не работают в Windows 10

Привет, я пытался выполнить некоторые распределенные команды erlang, такие как erl -sname/erl -name, и я не получаю ответа.

Если я поставлю . в конце, это будет синтаксическая ошибка.
Если я этого не сделаю ничего не вернет и будет рассматривать это как незавершенную команду.

Я думал, что это только для этих команд, но, похоже, есть и другие, которые не будут делать ничего подобного erl -man <module_name>.

Нужно ли мне что-то настраивать, чтобы иметь возможность выдавать erl команды.

P.S ОС Windows 10.


person Bercovici Adrian    schedule 08.06.2020    source источник
comment
Вы пытаетесь запустить erl -sname из оболочки erlang, то есть после того, как уже запустили erl без опции -sname? Это не работает.   -  person RichardC    schedule 08.06.2020
comment
Вы должны отобразить точную команду и возвращаемые сообщения. Я использую erl с Windows 10, и он работает очень хорошо. Вы должны завершить всю свою команду точкой, например: pwd(). . Если вы забыли его, введите одну точку и вернитесь на следующей строке. Не вводите команду снова, оболочка ждет этой точки, чтобы начать анализ команды. В моем примере, если вы снова наберете команду, оболочка попытается интерпретировать pwd() pwd(). и, таким образом, выдаст синтаксическую ошибку.   -  person Pascal    schedule 08.06.2020
comment
@RichardC, я только что открыл оболочку erlang и набрал erl -sname/erl name, как я делаю с другими командами, которые работают как: node() или pwd() или cd   -  person Bercovici Adrian    schedule 08.06.2020


Ответы (1)


Команда erl-sname или без нее) — это просто то, как вы запускаете Erlang из окна консоли, такого как cmd или powershell. В Windows, чтобы получить полностью работающую оболочку Erlang с редактированием командной строки и т. д., вам нужно использовать специальный исполняемый файл werl вместо erl — это связано с тем, как работают консоли Windows. Попробуйте открыть окна cmd или powershell и посмотреть, как это работает.

Если вы откроете свойства значка, который вы использовали для запуска Erlang, вы увидите, что он выполняет команду werl (в меню «Пуск» вы должны использовать «больше -> открыть путь к файлу», чтобы сначала найти фактический значок) . Вы можете отредактировать это и добавить к команде такие параметры, как -sname yournodename, или вы можете создать копию значка (например, на рабочем столе) и дать ему более подходящее имя, например «Мой узел Erlang», а затем отредактировать его параметры.

person RichardC    schedule 09.06.2020
comment
Вы правы, я использовал werl до сих пор. Я выдавал команды, загружал модули, запускал их без проблем. Чего я не понимаю, так это того, что мне нужно сделать, чтобы иметь возможность запускать такие команды, как sname, net_adm:ping. Если я запускаю их как [command]., это говорит о синтаксической ошибке. - person Bercovici Adrian; 09.06.2020
comment
Вы не можете запустить консольную команду (cmd) в оболочке Erlang. Только выражения Erlang. Параметр -sname должен быть задан команде erl/werl при запуске системы. Однако после этого можно запустить сеть Erlang, написав net_kernel:start([mynodename, shortnames]).. - person RichardC; 09.06.2020