我想在Erlang中编写一个shell。 shell需要从用户(stdin)获取一行命令,并且该行应该是可编辑的。我需要向用户提供命令历史记录。例如,通过按向上箭头键,用户应该看到上一个命令。但是我们如何在Erlang中只读取一个字符并查看它是否为向上箭头键?
答案 0 :(得分:1)
通常要编写一个好的shell,你必须控制终端。 终端控制功能是特定于平台的。例如对于Linux,它将是 “tcgetattr”,“tcsetattr”stdlib函数。
如果你真的想写一个好的终端,你必须看看
“Unix / Linux编程。理论与实践”,Bruce Molay。您需要第5章(关于终端)
通过使用驱动程序和端口,您可以使用它没有的功能扩展erlang。 (你可以在C中写出它们,例如)
您可以在“Erlang Programming”(Francesco Cesarini和Simon Thompson)第16章中了解端口和驱动程序。您可以在那里获得端口和链接驱动程序之间的区别。