热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[Erlang0083]AllaboutErlangShell

 ErlangShell是一个强大的工具,几乎只要我的电脑开着,就会有一个ErlangShell开着,随时验证想法.就是因为是常用武器,也会有一些常见问题,今天做下回顾,顺便解决两


  Erlang Shell是一个强大的工具,几乎只要我的电脑开着,就会有一个Erlang Shell开着,随时验证想法.就是因为是常用武器,也会有一些常见问题,今天做下回顾,顺便解决两个新问题.算是Erlang shell常见问题的不完全合集了吧.后续和Erlang Shell相关的问题也会在本文追加更新.

  

  对于Erlang Shell有些问题已经有解决方案了,你可以先翻翻下面的列表:

 

[Erlang 0062] Erlang Unicode 两三事 (Erlang Shell中文输出问题) 

 

[Erlang 0056] 用fun在Erlang Shell中编写尾递归 Ⅱ

 

[Erlang 0051] Using ETS in Erlang Shell 

 

[Erlang 0050]用fun在Erlang Shell中编写尾递归

 

[Erlang 0044] Erlang Shell 输入历史

 

[Erlang 0031] Erlang Shell中的输出完整数据

 

[Erlang 0027] Using Record in Erlang Shell 

 

 

老革命遇到新问题之 

 

我还是想看到输出的中文是什么?

 

   之前专门整理过一篇关于Erlang与Unicode的文章: [Erlang 0062] Erlang Unicode 两三事 ,但还是有执著的兄弟就像看看输出的中文是什么,这里可以绕一步,把输出的内容输出到文件,然后在别的窗口(或者把当前shell切换到后台运行)查看,代码如下:

 
14> Dump= fun(Content)-> file:write_file("/data/dump.data", io_lib:fwrite("~ts.\n", [Content])) end.
#Fun6.111823515>
15> Dump(v(1)).
ok
16> 

 

  如果,这个是常用的操作,可以考虑把这个方法放在user_default方便使用;我曾经在 [Erlang 0027] Using Record in Erlang Shell 提到过user_default的用法.

 

 

老革命遇到新问题之

 

把io:format结果输出到文件

 

  群里面有人问"我在erl shell里执行m(). 如何把列出的内容输出到文件里, 因为内容太多了, 一个屏看不完!"如果你尝试上面的方法把结果写到文件,你会发现结果只有一个ok.这是因为m()输出的一大堆结果是io:format的输出,要把这些结果输出实际上要做的是将io:format的结果重定向到文件.我之前提到过,这里其实就是修改group_leader  (参考:[Erlang 0041] 详解io:format)

 

  样例代码如下,记得由于你的结果会全部重定向到文件,所以后续想切换回Shell输出,需要重新设置一下group_leader

 

Eshell V5.9.1  (abort with ^G)

1> group_leader().

<0.23.0>

2> {ok, F} = file:open("dump.data", [write]).

{ok,<0.33.0>}

3> self().

<0.30.0>

4> group_leader(F, self()).

5> m().

6> group_leader(pid(0,23,0), pid(0,30,0)).

true

7> erlang:now().

{1351,776145,62000}

   这个问题有同学发起追问"io:format 也显示不完呢?"  这个其实很简单,我们只需要把rp()的结果重定向就可以了:

Eshell V5.9  (abort with ^G)
1> lists:seq(1,100).
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,
 23,24,25,26,27,28,29|...]
2> {ok, F} = file:open("dump.data", [write]).
{ok,<0.35.0>}
3>  group_leader(F, self()).
4> rp(v(1)).
5> 

查看一下文件dump.data:

[root@localhost data]# cat dump.data 
true
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,
 23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,
 43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,
 63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,
 83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]
ok

 

  关于Erlang Shell还有什么常见的问题?欢迎补充!

 

  最后,送上小图一张,这位美女是 曾华倩 每次看到曾华倩出现在屏幕,就想到何勇的那句歌词:

姑娘 姑娘 你漂亮 漂亮 你抱着娃娃我还把你想

 

[Erlang 0083] All about Erlang Shell

 

2012-11-01 23:26 更新

今天还有一个好消息啊,Nosql Distilled 的电子书版可以下载了,期待Martin Fowler的这本书好久了,终于等到了!!!!

这里就不给出链接了,执行百度吧,很容易找到 epub版本的 

 

NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence [Paperback]

 

Pramod J. Sadalage (Author), Martin Fowler (Author)

 

http://www.amazon.com/NoSQL-Distilled-Emerging-Polyglot-Persistence/dp/0321826620

 

2012-11-5 20:26:35更新

  关于Erlang Shell的扩展除了user_default的方式,不少开发者也不断另辟蹊径:

  著名的Erlang开发者Ulf Wiger2007年在其博客里面提到了一些对Erlang Shell的扩展方法:

[1] Extending the Erlang shell (part 1)

[2] Extending the Erlang shell (part 2)

 

[3] 相关项目地址: http://jungerl.cvs.sourceforge.net/viewvc/jungerl/jungerl/lib/lersp/src/

 

 


推荐阅读
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 2009年12月28日,易语言公司正式推出了“易语言5.0静态编译测试版1”,这一版本标志着易语言在技术上的重要突破。与之前的4.x版本相比,5.0测试版1引入了静态编译功能,显著提升了程序的运行效率和安全性。此外,新版本还优化了代码生成机制,增强了语言的表达能力和兼容性。自发布以来,用户反馈非常积极,普遍认为新功能带来了更加流畅的开发体验。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • CAD中外部参照图框的命令与应用技巧 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
author-avatar
品格优良2003_645
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有