我在启动此代码时遇到问题,我真的不知道从哪里开始。我想知道该怎么做。我要做的就是一旦我执行文件,我应该只能输入“历史记录”,它应该显示我所用的所有命令的历史记录。如何编写此文件以允许我这样做?任何提示或线索将不胜感激!
答案 0 :(得分:3)
基础知识相对简单。您需要为历史记录设计合适的磁盘格式,请记住您可能不希望文件无限增长(尽管第一个版本可能没问题)。而且你需要一组函数来操作文件(打开,关闭,写入和搜索)。
每次读取命令(完整命令 - 管道或for
循环或其他)时,您也会写入历史记录机制。
您的历史记录机制还应允许您检索以前的命令,列出它们,或按内容或数字搜索它们。
您应该考虑的细节包括确保在执行其他命令时关闭历史文件,并确保子shell不会写入历史记录(通常)。您需要考虑是否可以让多个shell访问同一个历史文件;您的历史会持续多个会话吗?如果您同时打开两个终端窗口会发生什么?
GNU readline库具有钩子,可以与历史库集成。它还提供了一个历史库。