如何改变Erlang的当前工作路径

Posted Shay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何改变Erlang的当前工作路径相关的知识,希望对你有一定的参考价值。

在目前网络上许多的Erlang基础教程中都提到类似下面的一个例子:

-module(tut).
-export([double/1]).

double(X) ->
    2 * X.

然后在Erlang Shell中进行编译tut.erl源文件:

1> c(tut).    

但对于一个刚刚接触到Erlang的初学者来说,经常会发生如下的错误:

./tut.erl:none: no such file or directory
error

提示信息告诉用户tut.erl文件没有找到,这让许多初学者搞不明白tut.erl源文件应该被在哪个目录下才可以被Erlang编译器找到。对于Windows用户来说,用户点击Erlang图标启动的Erlang Shell的工作路径是Erlang安装目录下的usr目录下,将tut.erl或其他用户自己编写的Erlang源文件拷贝到该目录下就可以直接用c(xxxx)命令进行编译了,其中的xxxx为模块名称,即为不带.erl扩展名的源文件名。

用户如果不想以该目录作为默认工作目录,则可以在Erlang图标点右击鼠标,选择弹出菜单项“属性”,然后修改“Erlang 属性”对话框中 “起始位置”的值,原值为“(Erlang安装路径)/usr”,改为你想要的工作目录值即可。

通过执行以下命名可以查询当前的Erlang工作目录:

2> pwd().
e:/erl5.6.5/usr
ok

请注意pwd()返回的目录名称与标准的Windows目录名并不一样,使用的是正斜杠分隔符“/”,如果想在Erlang Shell中切换当前的工作目录,则可以使用以下命令:

3> cd("e:/mynewwork").
e:/mynewwork
ok

同样的,cd(dir)命令中的工作目录名同样是使用正斜杠分隔符“/”,而不能使用Windows标准的反斜杠分隔符“/”,如果你使用Windows标准目录名,则cd(dir)命令执行时不会提示有使用错误信息,则并没有正确切换到新的工作目录中。

如果用户在命令行模式下执行erl.exe直接进入Erlang Shell的话,则当前目录即为Erlang的工作目录,而不会受Erlang图标属性中的“起始位置”设置的影响,如果想用户在任何方式进入Erlang Shell时都自动切换到指定的工作目录,则可以在用户目录中的编辑一个.erlang文件:

c:cd("e:/mynewwork").
io:format("My new work in: ~p!n", [element(2, file:get_cwd())]).

同样需要注意的是,这里说的用户目录一般为C:/Documents and Settings/(当前登录用户名),比如当前你以heangel账号登录Windows系统,则用户目录为C:/Documents and Settings/heangel,该文件在Windows平台下,可以理解成一个只有扩展名没有文件名的文件,这样的文件在Windows的文件浏览器中可以进行一般的浏览、删除操作,但无法将一个正常的文件名重命名成这样的文件,所以一般需要用记事本将以上代码编辑进一个空文档中,然后另存文件,选择保存类型为“所有文件”,文件名为“.erlang”进行保存。

作为一个Erlang初学都,仔细阅读以上内容,并动手实践以上第个步骤,就可以开发真正的Erlang学习了。

以上是关于如何改变Erlang的当前工作路径的主要内容,如果未能解决你的问题,请参考以下文章

linux shell脚本如何获取“当前工作路径”,“执行脚本所在路径”,“执行脚本所在路径和执行路径的相对路径”?(当前目录)

哪个API函数能在windows程序运行时改变自身的文件路径(工作目录)?

如何获取当前工作目录路径 c#?

6_30 os模块

linux shell脚本如何获取“当前工作路径”,“执行脚本所在路径”,“执行脚本所在路径和执行路径的相对路径”?(当前目录脚本目录脚本路径)

python 如何退回上级路径