如何从shell获取Erlang的发行版本号?

许多程序使用以下命令返回其版本号:
$ program --version
program (platform info) v1.2.3

这对于脚本化程序的安装或维护是有用的,并且一些其他受控的自动化魔术从系统管理员&朋友。

问题

如何轻松获取Erlang(OTP)的版本号?

网络上

这里有一些不令人满意的解决方案([1]和其他教程/ Erlang文档):

模拟器

$ erl
1> erlang:system_info(otp_release).
"R13B03"

难以脚本。我没有找到一种方法来erl从shell提示符执行单个命令。

发布文件

$ cat /usr/lib/erlang/releases/RELEASES
[{release,"OTP  APN 181 01","R13B03","5.7.4",[{kernel,"2.13.4","/usr/lib/erlang/lib/kernel-2.13.4"},{stdlib,"1.16.4","/usr/lib/erlang/lib/stdlib-1.16.4"},{sasl,"2.1.8","/usr/lib/erlang/lib/sasl-2.1.8"}],permanent}].

解析天堂(带壳)。

另一种方法是检查安装路径,但不可移植(我的安装路径包括版本)。

个人上下文:我写一个脚本在几台机器上安装与插件相同版本的RabbitMQ。一些插件对OTP版本的要求最低,这是这个问题的开始。

[1] http://forum.trapexit.org/viewtopic.php?p=42946

erl -eval 'erlang:display(erlang:system_info(otp_release)),halt().'  -noshell

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...