2

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

问题1:
但是,我不知道如何做到这一点。你?

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

谢谢。

4

3 回答 3

5

在您的 shell 中构建libeditreadline支持。

于 2010-04-15T23:51:48.010 回答
1

如果你想偷懒,你可以使用rlwrap

rlwrap prog
于 2010-04-15T23:58:04.093 回答
0

我为HelenOS编写了 shell 。获取 bzr 存储库并导航到uspace/app/bdsh(bdsh 代表 (b)rain (d)ead (sh)ell)。

其他贡献者已经在处理输入的功能中添加了行编辑/历史记录/选项卡完成。它纯粹用 ANSI C 编写,不链接 glibc 并实现自己的功能。代码(在 shell 和底层 HelenOS libc 中)是 3 子句 BSD,你可以在任何地方使用它。

如果不出意外,只需检查实现以开始使用可能会有所帮助。

于 2010-04-16T06:26:51.110 回答