【问题标题】:Adding keyboard shortcuts in my homemade shell在我自制的 shell 中添加键盘快捷键
【发布时间】:2016-01-14 17:24:29
【问题描述】:

所以我必须用 C 语言为学校编写一个基本的 shell,没有管道,没有重定向,我只需要执行二进制文件并编写一些内置代码。

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

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

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

如果有人有想法,那就太好了

【问题讨论】:

    标签: c linux shell unix


    【解决方案1】:

    一般使用readline 库来读取输入。它支持定义快捷方式、历史记录、自动完成……并且是为此目的而设计的。

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

    如果你只是想玩一会儿,你可以使用rlwrap 命令启动你的shell:

    rlwrap your_shell
    

    rlwrap 可用于向从标准输入读取的任意命令添加 readline 功能。

    【讨论】:

    • 我不允许使用类似的东西
    • 是的,我现在意识到了。
    • 谢谢!我要试试这个
    • 这个答案被否决了。投反对票的人可以给个理由吗?
    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2021-07-17
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多