Erlang shell在使用路径添加时忽略参数

Posted

技术标签:

【中文标题】Erlang shell在使用路径添加时忽略参数【英文标题】:Erlang shell ignoring parameters when using path add 【发布时间】:2021-07-31 07:58:23 【问题描述】:

erl -sname test –pa ./simple_cache/ebin 以前可以正常工作(而且我在正确的目录中),但现在:

Eshell V11.1.5 
1> node().
nonode@nohost

既没有启动网络内核,也没有添加路径。不过,在 shell 中手动这样做是可行的。

【问题讨论】:

我可以复制,问题似乎出在路径上,因为仅运行 erl -sname test 确实可以按预期工作(即它设置节点名称)。 这怎么可能?我没有收到错误,并且路径的内容很好: $ ls ./simple_cache/ebin create_tables.beam sc_app.beam sc_element_sup.beam sc_event_logger.beam sc_sup.beam simple_cache.beam resource_discovery.beam sc_element.beam sc_event.beam sc_store.beam simple_cache.app 是的……不知道。我现在也有兴趣弄清楚这一点。 所以我把它归结为:我实际上在运行相同的命令,但一个是从 slack 复制的,另一个是键入的(虽然不知道哪个是哪个): giphy.com/gifs/FuEYwhAdTDvoKi3efj 一个有效,另一个无效。 【参考方案1】:

–pa 中的破折号不是常规破折号,而是其他东西。一些花哨的格式可能在被复制之前就出错了。

–pa 是代码点(又名破折号)(U+2013),-sname 是代码点 (U+002D)(又名连字符减号)。

【讨论】:

【参考方案2】:

无论出于何种原因,命令中的破折号都不同:

erl -sname test –pa ./simple_cache/ebin

sname 之前的那个稍微短一些,结果证明使用那个可以解决问题。我的天。

【讨论】:

以上是关于Erlang shell在使用路径添加时忽略参数的主要内容,如果未能解决你的问题,请参考以下文章

使用带有列表的 shell=True 时忽略 subprocess.call() 参数 [重复]

忽略查找中的目录路径(在shell中)[重复]

使用 unix 批处理自动化 Erlang shell 节点

shell grep 命令大全

Shell编程之特殊变量(详解)

我可以在 Erlang shell 中禁用将小整数打印为字符串的列表吗?