erlang/OTP 平台(学习笔记)(四)

这篇具有很好参考价值的文章主要介绍了erlang/OTP 平台(学习笔记)(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Erlang语言精要

Erlang shell

相较于日常惯用的系统,Erlang系统是一套更富交互性的环境。使用大部分编程语言时,要么把程序编译成OS可执行文件后运行,要么用解释器来执行一堆脚本文件或编译后的字节码文件。无论哪种情况,都是让程序一路跑到结束或崩溃为止,然后回到操作系统环境中,再重复这个过程。

Erlang却不是这样,它更像是在操作系统中运行着的另一个操作系统。虽然Erlang的启动速度很快,但它并非被设计用于需要频繁启停的场合—它被设计用于持续运行,是为交互式开发、调试和升级而设计的。理想情况下,只有碰到硬件故障、操作系统升级之类的情况才有必要重启Erlang。

与Erlang系统的交互主要是在shell中进行的。shell就是你的指挥中心。

启动shell

我们假设你已经下载并安装了Erlang/OTP。如果你用的是Linux、Mac OSX,或其他类UNIX系统,启动一个终端并运行erl命令即可。如果你在用Windows,你应该点击安装程序替你生成的Erlang图标,随后会启动名为werl的程序,它会打开一个特殊的Erlang终端,这样做可以避免直接在Windows终端下交互式运行erl会碰到的一些问题。

输入表达式

首先,你在shell提示符下输入的并不是什么命令,而是表达式,两者的区别在于表达式一定会返回一个求值结果。表达式求值完毕后,shell就会打印出求值结果。shell会记住这些结果,后续可以用v(1)、v(2)这样的语法来引用它们。比如,输人数值42,紧跟一个英文句号(.),再回车,你将看到:

1>42.
42
2>

敲下回车后,Erlang会对表达式42求值,并打印求值结果(数值42),最后给出一个新的提示符,编号为2。不过为什么要在42后面加上一个句号呢?

1.以句号结束

在敲下回车之前,必须用句点告诉shell表达式已输入完毕。如果不输人句号就回车,shell会一直提示你输入更多字符(提示符编号不会增加),就像这样:

2>12
2> + 5
2>.
17
3>

要是一开始忘了句号,不用担心,补上之后敲回车就行了。可以看到,这个简单的算术表达式的求值结果仍与预期相符。现在,我们来试着取回先前的求值结果:

3>v(1).
42
4>v(2).
17
5>v(2) + v(3).
59
6>
2.输入带引号的字符串

当你输人双引号或单引号字符串时(现在先不讨论二者的区别),有一个特别值得注意的问题,如果忘了结尾的引号就敲了回车,shell会把同样的提示符再打印一遍并继续等待更多输人,这跟上一个忘记句号的例子差不多。如果碰到这个情况,可以输入匹配的引号并跟上一个句号,再敲回车。例如,像这样:

1>"hello there.
1>

这里的句号并不是这个字符串结束的标志一它是字符串的一部分。为了让shell从这个状态中恢复过来,你需要加些内容来结束这个字符串:

1>".
"hello there. \n"
2>

注意最终的字符串中包含一个句号和一个换行符,而这多半不是你想要的结果。你可以用上方向键或Ctrl-P找回那行并重新编辑,在正确的位置插人遗漏的引号:
 

2>"hello there".
"hello there"
3>v(2).
"hello there"
4>

shell函数

在Erlang中有一类像v(N)这样的函数,它们只存在于shell中。这些shell函数的名字通常很短(也比较晦涩)。要获取完整的shell函数清单,可以输人help()(具本身也是一个Shell函数)。

erlang/OTP 平台(学习笔记)(四),erlang,学习,笔记

退出shell

退出shell(并停止整个Erlang系统)的方法有好几种:

1.调用q()或init: stop ()

最安全的方法就是运行上一节提到过的shell函数q()。这是init:stop()函数的一个简写形式(你也可以直接调用这个函数),该函数以一种可控的方式关闭整个Erlang系统,它会通知正在运行的应用停止运行并给它们预留出响应时间。通常这个过程几秒内就可以完成,但线上系统可能需要花费更多的时间来完成各种清理工作。

2.BREAK菜单

如果急着退出而运行的东西也不重要,在类UNIX系统中你可以按Ctrl-C唤出底层的BREAK菜单,Windows下可以在werl终端下用Ctrl-Break唤出该菜单。它看起来是这样的

erlang/OTP 平台(学习笔记)(四),erlang,学习,笔记其中我们感兴趣的选项是(a)退出系统(硬停机)、(c)返回shell,和(v)打印当前运行的Erlang的版本。其他选项则会打印出计夕尔北记大HJn对大部活动乃至强制关闭任何故障进程,这些信息对调试很有用;(k)还可以让你浏览所有Erlang内部活动乃至强制关闭任何故障进程,前提是你明确知道自己在做什么。注意shell本身感知不到BREAK菜单,因此当你用(c)返回shell时,还得再按一次回车提示符才会刷新。

3.Ctrl-G

第三个同时也是最有用的一个退出方法就是用Ctrl-G唤出用户开关命令菜单。这么做会令Erlang输出这么一段晦涩的文字:
erlang/OTP 平台(学习笔记)(四),erlang,学习,笔记键入h或?并回车,你将看到以下的清单:
erlang/OTP 平台(学习笔记)(四),erlang,学习,笔记在提示符-->下键人c可以返巳shell 键入q会硬停机,就跟BREAK菜单下的(a)一样——别把这个a跟shell函数q( )弄混! 后者对系统更友好。另外注意BREAK菜单位居更底层,你可以在Ctrl-G菜单中唤出BREAK菜单,反之则不行。
 文章来源地址https://www.toymoban.com/news/detail-791523.html

到了这里,关于erlang/OTP 平台(学习笔记)(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • erlang (Lists 操作模块)学习笔记(三)

    suffix   如果 List1 是 List2 的后缀,则返回 true,否则返回 false。 sum   返回 List 中元素的总和。  takewhile   从 List1 中获取元素 Elem,而 Pred(Elem) 返回 true,即 是,该函数返回其列表中最长的前缀 所有元素都满足谓语。Pred 函数必须 返回一个布尔值。 ukeymerge  

    2024年01月25日
    浏览(25)
  • Codalab平台学习笔记

    Codalab是一个用于复现深度学习研究的协作平台,由斯坦福大学和微软合作开发。其核心理念是在云端运行机器学习实验,像jupyter notebook一样在数字实验室中管理实验,同时可以发布实验的 worksheet 以便其他人可以复现实验结果。 Colab官网展示的三个步骤为: 上传文件:首先

    2024年01月18日
    浏览(26)
  • 【什么是OTP?OTP介绍?】

    OTP:one time programmable,sensor芯片内部存在一部分OTP存储空间,意即一次性可编程序。(多是采用融丝结构,编程过程是不可逆的破坏活动。) EEPROM:Electrically-Erasable Programmable Read-Only Memory带电可擦可编程只读存储器 OTP数据一般存在两个地方:在sensor本身的芯片中OTP空间或者外挂

    2024年02月09日
    浏览(26)
  • 学习笔记-JVM监控平台搭建

    SpringBoot Actuator 1 引入依赖 2 开启配置 3 访问 http://127.0.0.1:8888/actuator 4 提供的信息如下表 路径 描述 默认开启 /beans 显示容器的全部的Bean,以及它们的关系 Y /env 获取全部环境属性 Y /env/{name} 根据名称获取特定的环境属性值 Y /health 显示健康检查信息 Y /info 显示设置好的应用信

    2024年02月13日
    浏览(26)
  • 学习笔记——压力测试案例,监控平台

    测试案例 然后配置执行计划: 新建一个执行计划 配置请求路径 配置断言 配置响应持续时间断言 然后配置一些查看结果的统计报表或者图形 然后我们可以安装一个插件来可视化更多的指标: jmeter官网 jmeter插件官网 安装插件: 将下载的插件jar 放到目录 看到插件中心表示安

    2024年02月14日
    浏览(30)
  • 【软件测试】学习笔记-统一测试数据平台

    这篇文章主要探讨全球大型电商企业中关于准备测试数据的最佳实践,从全球大型电商企业早期的测试数据准备实践谈起,分析这些测试数据准备方法在落地时遇到的问题,以及如何在实践中解决这些问题。其实,这种分析问题、解决问题的思路,也是推动着测试数据准备时

    2024年01月17日
    浏览(31)
  • 3 北京超算云计算平台深度学习环境配置笔记

    点击链接https://cloud.blsc.cn/进入网页版或下载客户端,使用北京超级云计算中心账号登陆 1.SSH到服务器 点击页面上的SSH进行远程连接,点击连接后进行命令行界面 进入run目录下,run目录下有300G的内存,可以把数据和代码等各种资料存到里面 2. 创建环境 首先在命令行输入,查看

    2024年02月07日
    浏览(95)
  • 【Linux】RK3399平台开发系列——设备树的学习笔记

    设备树(Device Tree)是用于描述硬件设备和系统关系的树形数据结构,主要用于 Linux 操作系统中的设备驱动程序。在嵌入式系统中,由于硬件的多样性和复杂性,设备树变得越来越流行,用户可以用设备树来描述各种外设的属性和配置信息,以帮助内核识别和管理外设。 在

    2024年02月04日
    浏览(30)
  • FPGA学习笔记(五)Testbench(测试平台)文件编写进行Modelsim仿真

    一、FPGA学习笔记(一)入门背景、软件及时钟约束 二、FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三、FPGA学习笔记(三) 流水灯入门FPGA设计流程 四、FPGA学习笔记(四)通过数码管学习顶层模块和例化的编写 五、FPGA学习笔记(五)Testbench(测试平台)文件编写进行

    2024年02月07日
    浏览(39)
  • 软件测试学习笔记丨docker 搭建常用服务器与平台命令

    本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29881 映射端口 : docker run -d -p 5003:80 --name mynginx nginx (5003是宿主机,80是容器端口) 映射文件 : docker run -d -p 5003:80 -v \\\"$PWD/html\\\":/usr/share/nginx/html --name mynginx nginx -v : 文件映射 docker run --name some-mysql -v /home/gaofei/test/mysq

    2024年03月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包