erlang shell 命令中文使用说明

来源:互联网 发布:淘宝口红代购知乎 编辑:程序博客网 时间:2024/05/22 07:05

http://blog.csdn.net/mycwq/article/details/16858805

erlang shell 是在命令行模式下使用命令和 erlang 交互的工具。erlang shell功能十分强大,可以直接编译、加载、执行、调试模块等等,完全可以将shell做为erlang项目的终端使用。文章将对erlang shell 命令做介绍,还简单以示例说明。

打开erlang shell的帮助信息,在这里变成中文了。同时可以看下官方文档

shell 函数帮助

[plain] view plain copy
  1. Eshell V5.10.2  (abort with ^G)  
  2. 1> help().  
  3. ** shell 内置命令 **  
  4. b()        -- 显示所有绑定的变量  
  5. e(N)       -- 重复某次查询 <N>  
  6. f()        -- 释放所有绑定的变量  
  7. f(X)       -- 释放某个绑定的变量  
  8. h()        -- 显示之前的操作  
  9. history(N) -- 设置保存之前操作命令的条数  
  10. results(N) -- 设置保存之前操作结果的条数  
  11. catch_exception(Bool) -- 设置的执行过程中的异常处理  
  12. v(N)       -- 使用某次查询的值 <N>  
  13. rd(R,D)    -- 定义一个 record  
  14. rf()       -- 移除所有 record  
  15. rf(R)      -- 移除某个 record  
  16. rl()       -- 显示所有 record  
  17. rl(R)      -- 显示某个 record 信息  
  18. rp(Term)   -- 显示某个元组的所有内容  
  19. rr(File)   -- 从一个文件或模块读取 record 定义  
  20. ** c 模块命令 **  
  21. bt(Pid)    -- 显示一个进程的栈回溯  
  22. c(File)    -- 编译及重新加载模块  
  23. cd(Dir)    -- 改变工作目录  
  24. flush()    -- 刷新信箱(以便shell接收信息)  
  25. help()     -- 帮助信息  
  26. i()        -- 显示系统信息  
  27. ni()       -- 和 i() 一样显示系统信息,还包括网络节点的系统信息  
  28. i(X,Y,Z)   -- 通过 pid <X,Y,Z> 获取某个进程的信息  
  29. l(Module)  -- 加载或重新加载模块  
  30. lc([File]) -- 编译一个列表的 Erlang 模块  
  31. ls()       -- 显示当前工作目录下的文件列表  
  32. ls(Dir)    -- 显示某个目录下的文件列表  
  33. m()        -- 显示已加载进系统的模块  
  34. m(Mod)     -- 显示某个模块信息  
  35. memory()   -- 显示内存分配信息  
  36. memory(T)  -- 显示某项内存分配信息 <T>  
  37. nc(File)   -- 在所有节点编译及加载模块  
  38. nl(Module) -- 在所有节点重新加载模块  
  39. pid(X,Y,Z) -- 通过 pid <X,Y,Z> 获取某个进程 pid  
  40. pwd()      -- 显示当前工作目录  
  41. q()        -- 关闭 erlang shell  
  42. regs()     -- 显示注册过的进程信息  
  43. nregs()    -- 和 regs() 一样显示注册过的进程信息,还包括网络节点的进程信息  
  44. xm(M)      -- 查找某个模块未定义的函数,未使用的函数,已弃用的函数  
  45. y(File)    -- 编译 Yecc 文件(.yrl)  
  46. ** i 模块命令  **  
  47. ih()       -- 显示 i 模块的帮助信息  
  48. true  

shell 函数说明

1、显示绑定变量

b()  -- 显示所有绑定的变量

[plain] view plain copy
  1. 1> [A,B,C] = [1,2,3].  
  2. [1,2,3]  
  3. 2> b().  
  4. A = 1  
  5. B = 2  
  6. C = 3  
  7. ok  

2、重复查询

e(N)   -- 重复某次查询

[plain] view plain copy
  1. 3> e(1).  
  2. [1,2,3]  

3、释放绑定变量

f()        -- 释放所有绑定的变量
f(X)     -- 释放某个绑定的变量

[plain] view plain copy
  1. 4> A.  
  2. 1  
  3. 5> f(A).  
  4. ok  
  5. 6> A.  
  6. * 1: variable 'A' is unbound  
  7. 7> B.  
  8. 2  
  9. 8> f().  
  10. ok  
  11. 9> B.  
  12. * 1: variable 'B' is unbound  
  13. 10> C.  
  14. * 1: variable 'C' is unbound  

4、使用查询结果

v(N)  -- 使用某次查询的值

[plain] view plain copy
  1. 11> A1 = v(4).  
  2. 1  
  3. 12> A1.  
  4. 1  

5、record 操作

rd(R,D)    -- 定义一个 record
rf()       -- 移除所有 record
rf(R)      -- 移除某个 record
rl()       -- 显示所有 record
rl(R)      -- 显示某个 record 信息

[plain] view plain copy
  1. 13> rd(person, {name, age, address, salary, children}).  
  2. person  
  3. 14> rd(child, {name, age}).  
  4. child  
  5. 15> rl().  
  6. -record(child,{name,age}).  
  7. -record(person,{name,age,address,salary,children}).  
  8. ok  
  9. 16> rl(child).  
  10. -record(child,{name,age}).  
  11. ok  

6、显示元组内容

rp(Term)   -- 显示某个元组的所有内容

erlang shell会自动省略内容太长的元组,使用rp命令可以完整显示出来

[plain] view plain copy
  1. 17> lists:seq(1,50).  
  2. [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,  
  3.  23,24,25,26,27,28,29|...]  
  4. 18> rp(lists:seq(1,50)).  
  5. [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,  
  6.  23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,  
  7.  43,44,45,46,47,48,49,50]  
  8. ok  

7、工作目录

cd(Dir)   --  改变工作目录

pwd()     --  获取工作目录

[plain] view plain copy
  1. 19> pwd().  
  2. d:/tmp  
  3. ok  
  4. 20> cd("d:/").  
  5. d:/  
  6. ok  
  7. 21> pwd().  
  8. d:/  
  9. ok  

8、进程操作

self()              --  获取当前进程 pid

pid(X,Y,Z)            -- 通过 pid <X,Y,Z> 获取某个进程 pid
exit(Pid)              -- 杀死某个进程
catch_exception(Bool)  -- 设置的执行过程中的异常处理
[plain] view plain copy
  1. 22> self().  
  2. <0.31.0>  
  3. 23> catch_exception(false).  
  4. true  
  5. 24> exit(pid(0,31,0)).  
  6. ** exception exit: <0.31.0>  
  7. 25> self().  
  8. <0.33.0>  
  9. 26> catch_exception(true).  
  10. false  
  11. 27> exit(pid(0,33,0)).  
  12. * exception exit: <0.33.0>  
  13. 28> self().  
  14. <0.33.0>  


版权声明:本文为“没有开花的树”原创文章,未经博主允许不得转载。

原创粉丝点击