如何在Erlang中编写shell程序?

时间:2014-06-18 13:07:49

标签: shell erlang

我想在Erlang中编写一个shell。 shell需要从用户(stdin)获取一行命令,并且该行应该是可编辑的。我需要向用户提供命令历史记录。例如,通过按向上箭头键,用户应该看到上一个命令。但是我们如何在Erlang中只读取一个字符并查看它是否为向上箭头键?

1 个答案:

答案 0 :(得分:1)

通常要编写一个好的shell,你必须控制终端。 终端控制功能是特定于平台的。例如对于Linux,它将是 “tcgetattr”,“tcsetattr”stdlib函数。

如果你真的想写一个好的终端,你必须看看

  1. “Unix / Linux编程。理论与实践”,Bruce Molay。您需要第5章(关于终端)

  2. 看一看 uart applicationTry to follow this advice

  3. 您还可以阅读erlang drivers(preferrable way)erlang ports

  4. 通过使用驱动程序和端口,您可以使用它没有的功能扩展erlang。 (你可以在C中写出它们,例如)

    您可以在“Erlang Programming”(Francesco Cesarini和Simon Thompson)第16章中了解端口和驱动程序。您可以在那里获得端口和链接驱动程序之间的区别。