【问题标题】:List modules in shell like in erlang像在 erlang 中一样在 shell 中列出模块
【发布时间】:2019-03-26 11:58:32
【问题描述】:

我在 erlang 中有用于列出模块的模块路径的代码:

code:get_object_code(Module)

我们在 shell 中有类似的东西吗?

我知道我们可以通过以下方式列出 shell 中的模块:

module list

但它具体没有给出特定模块名称的模块路径

我试过了:

module show module_name
output: ModuleCmd_Display.c(151):ERROR:105: Unable to locate a modulefile for 'module_name'

【问题讨论】:

  • 这与bash 没有任何关系,因为module 似乎是您可以从any shell 运行的命令。
  • 是的,我不知道如何提出问题。我现在已经编辑了这个问题。那么你能建议我如何做到这一点吗?
  • @KajalPanigrahi 这是您使用的工具吗? modules.sourceforge.net
  • 是的,我使用来自 modules.sourceforge.net @legoscia
  • 我发布了一个答案。如果我正确理解了您的问题,请告诉我:)

标签: shell module erlang erlang-shell


【解决方案1】:

如果您提供module list 返回的名称,这似乎有效。例如,我有两个活动模块:

$ module list
Currently Loaded Modulefiles:
 1) module-info   2) module-git  

我可以询问有关module-git 的信息,输出包含模块的文件名,包括目录:

$ module show module-git
-------------------------------------------------------------------
/home/magnus/modules/modulefiles/module-git:

module-whatis   {get last version of the module sources from GitHub}
set-alias       get-modules {git clone git://github.com/cea-hpc/modules.git && cd modules}
-------------------------------------------------------------------

【讨论】:

  • 其实这就是我卡住的地方。在 erlang 中,我能够找到该模块,但是当我尝试使用模块列表时,我看不到它。我找到的模块会不会是主模块的子模块,可能是模块列表中没有显示的原因?
  • 嗯,Erlang 模块和 module 工具使用的模块是不同的东西,所以你不会看到带有 module list 的 Erlang 模块,反之亦然。你想做什么?
  • 我想找出我从 erlang 代码中得到的路径,它是如何设置的以及在哪里设置(可能在某些环境变量中),因为我不太了解 erlang 语言,这很困难对我来说一探究竟。
  • 可以看到Erlang代码路径中code:get_path()的目录列表。目录列表包括“标准”内置应用程序、从-pa-pz 选项传递给erl 的目录(例如用erl -pa /path/to/my/modules 启动Erlang),以及在ERL_LIBS 环境变量中列出的目录.有关详细信息,请参阅the erl documentation。这有意义吗?
  • 对,你需要在行尾加一个点:code:get_path().(这就是 Erlang shell 知道表达式在哪里结束的方式)
猜你喜欢
  • 2018-06-14
  • 2017-03-13
  • 1970-01-01
  • 2014-11-09
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
相关资源
最近更新 更多