http://www.52php.cn/article/p-albhfila-bcz.html
erlang shell 是在命令行模式下使用命令和 erlang 交互的工具。erlang shell功能十分强大,可以直接编译、加载、执行、调试模块等等,完全可以将shell做为erlang项目的终端使用。文章将对erlang shell 命令做介绍,还简单以示例说明。
打开erlang shell的帮助信息,在这里变成中文了。同时可以看下官方文档
shell 函数帮助
- EshellV5.10.2(abortwith^G)
- 1>help().
- **shell内置命令**
- b()--显示所有绑定的变量
- e(N)--重复某次查询<N>
- f()--释放所有绑定的变量
- f(X)--释放某个绑定的变量
- h()--显示之前的操作
- history(N)--设置保存之前操作命令的条数
- results(N)--设置保存之前操作结果的条数
- catch_exception(Bool)--设置的执行过程中的异常处理
- v(N)--使用某次查询的值<N>
- rd(R,D)--定义一个record
- rf()--移除所有record
- rf(R)--移除某个record
- rl()--显示所有record
- rl(R)--显示某个record信息
- rp(Term)--显示某个元组的所有内容
- rr(File)--从一个文件或模块读取record定义
- **c模块命令**
- bt(Pid)--显示一个进程的栈回溯
- c(File)--编译及重新加载模块
- cd(Dir)--改变工作目录
- flush()--刷新信箱(以便shell接收信息)
- help()--帮助信息
- i()--显示系统信息
- ni()--和i()一样显示系统信息,还包括网络节点的系统信息
- i(X,Y,Z)--通过pid<X,Z>获取某个进程的信息
- l(Module)--加载或重新加载模块
- lc([File])--编译一个列表的Erlang模块
- ls()--显示当前工作目录下的文件列表
- ls(Dir)--显示某个目录下的文件列表
- m()--显示已加载进系统的模块
- m(Mod)--显示某个模块信息
- memory()--显示内存分配信息
- memory(T)--显示某项内存分配信息<T>
- nc(File)--在所有节点编译及加载模块
- nl(Module)--在所有节点重新加载模块
- pid(X,Z>获取某个进程pid
- pwd()--显示当前工作目录
- q()--关闭erlangshell
- regs()--显示注册过的进程信息
- nregs()--和regs()一样显示注册过的进程信息,还包括网络节点的进程信息
- xm(M)--查找某个模块未定义的函数,未使用的函数,已弃用的函数
- y(File)--编译Yecc文件(.yrl)
- **i模块命令**
- ih()--显示i模块的帮助信息
- true
shell 函数说明
1、显示绑定变量
b() -- 显示所有绑定的变量
1>[A,B,C]=[1,2,3].
- [1,3]
- 2>b().
- A=1
- B=2
- C=3
- ok
2、重复查询
e(N) -- 重复某次查询
3>e(1).
- 3、释放绑定变量
f() -- 释放所有绑定的变量 f(X) -- 释放某个绑定的变量
4>A.
- 1
- 5>f(A).
- ok
- 6>A.
- *1:variable'A'isunbound
- 7>B.
- 2
- 8>f().
- 9>B.
- *1:variable'B'isunbound
- 10>C.
- *1:variable'C'isunbound
4、使用查询结果
v(N) -- 使用某次查询的值
11>A1=v(4).
- 12>A1.
- 1
5、record 操作
rd(R,D) -- 定义一个 record rf() -- 移除所有 record rf(R) -- 移除某个 record rl() -- 显示所有 record rl(R) -- 显示某个 record 信息
13>rd(person,{name,age,address,salary,children}).
- person
- 14>rd(child,age}).
- child
- 15>rl().
- -record(child,age}).
- -record(person,children}).
- 16>rl(child).
- ok
6、显示元组内容
rp(Term) -- 显示某个元组的所有内容
erlang shell会自动省略内容太长的元组,使用rp命令可以完整显示出来
17>lists:seq(1,50).
- 23,24,25,26,27,28,29|...]
- 18>rp(lists:seq(1,50)).
- [1,
- 23,29,30,31,32,33,34,35,36,37,38,39,40,41,42,108); color:inherit; line-height:18px; margin-top:0px!important; margin-right:0px!important; margin-bottom:0px!important; padding:0px 3px 0px 10px!important"> 43,44,45,46,47,48,49,50]
- ok
7、工作目录
cd(Dir) -- 改变工作目录
pwd() -- 获取工作目录
19>pwd().
- d:/tmp
- ok
- 20>cd("d:/").
- d:/
- 21>pwd().
- d:/
- ok
8、进程操作
self() -- 获取当前进程 pid pid(X,Z) -- 通过 pid <X,Z> 获取某个进程 pid
exit(Pid) -- 杀死某个进程
catch_exception(Bool) -- 设置的执行过程中的异常处理
22>self().
- <0.31.0>
- 23>catch_exception(false).
- true
- 24>exit(pid(0,0)).
- **exceptionexit:<0.31.0>
- 25>self().
- <0.33.0>
- 26>catch_exception(true).
- false
- 27>exit(pid(0,248); line-height:18px; margin-top:0px!important; margin-right:0px!important; margin-bottom:0px!important; padding:0px 3px 0px 10px!important"> *exceptionexit:<0.33.0>
- 28>self().
- <0.33.0>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|