在我的自制shell中添加键盘快捷键

时间:2016-01-14 17:24:29

标签: c linux shell unix

所以我必须用C写一个基本shell用于学校,没有管道,没有重定向,我只需要执行binarys并编写一些内置代码。

我已经完成了大部分工作,但现在我想实现一些键盘快捷键,比如ctrl + L来清除屏幕,上/下来浏览命令历史记录,ctrl + D来退出shell等等。

问题是,我不知道如何在用户不按回车的情况下阅读输入。

另外我应该提一下,我只能使用一个非常有限的功能面板,我可以用来读取输入的唯一功能是系统调用read()。

如果有人有想法那就很棒

1 个答案:

答案 0 :(得分:2)

通常使用readline库来读取输入。它支持定义快捷方式,历史记录,自动完成,......并且用于此目的。

如果您不被允许使用它,我想您的老师希望您专注于任务的重要部分而不是花哨

如果您只想玩一下,可以使用rlwrap命令启动shell:

rlwrap your_shell

rlwrap可用于向从stdin读取的任意命令添加readline功能。