如何用Erlang编写shell程序?

如何用Erlang编写shell程序?,shell,erlang,Shell,Erlang,我想用Erlang编写一个shell。shell需要从用户(stdin)获取一行命令,并且这一行应该是可编辑的。我需要向用户提供命令的历史记录。例如,通过按向上箭头键,用户应该可以看到上一个命令。但是,我们如何在Erlang中只读取一个字符,并查看它是否为向上箭头键呢?通常要编写一个好的shell,您必须控制终端。 终端控制功能是特定于平台的。例如,对于Linux,它将是 “tcgetattr”、“tcsetattr”stdlib函数 如果你真的想写一个好的终端,你必须看看 “Unix/Linu

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

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

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

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

  • 看看 及

  • 你也可以阅读 及

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

    您可以阅读《Erlang编程》(Francesco Cesarini和Simon Thompson)第16章中有关端口和驱动程序的内容。您可以在那里获得端口和链接驱动程序之间的差异

    也许从这里开始-