在linux c shell上显示带向上箭头的最后一个命令

时间:2010-04-15 23:48:36

标签: linux shell data-structures keyboard-events

我在c中实现了一个简单的linux shell。现在,我正在添加一些功能,我立即想到的是能够用向上箭头显示最后的命令。

问题1:
但是,我不知道如何实现这一目标。你呢?

问题2:
任何关于如何存储“历史”命令的评论也值得赞赏。我想像一个允许访问所有元素的队列这样的东西是个好主意。我错了吗?我是否必须实施它还是已经有一些我应该知道的良好实现?

感谢。

3 个答案:

答案 0 :(得分:5)

在您的shell中构建libeditreadline支持。

答案 1 :(得分:1)

如果您想要懒惰,可以使用rlwrap

rlwrap prog

答案 2 :(得分:0)

我为HelenOS编写了shell。抓住bzr repo并导航到uspace/app/bdsh(bdsh代表(b)rain(d)ead(sh)ell)。

其他贡献者已经为处理输入的函数添加了行编辑/历史/制表符完成功能。它纯粹用ANSI C编写,不与glibc链接并实现自己的功能。代码(在shell和底层的HelenOS libc中)都是3个子句BSD,你可以在任何东西中使用它。

如果不出意外,只需检查实施就可以开始了。