我设法完成了一项任务的中途,该任务要求我在一个简单的shell中实现历史记录功能(在C中,通过PuTTY远程使用UNIX框)。它基本上模仿了csh历史函数。它将来自命令行的过去命令保存在这样格式的文件中,例如:
1 - pwd
2 - 回音你好
3 - whoami
我现在遇到的问题是如何让它重新执行命令。例如,输入"!3"再次执行whoami。输入"!echo"重新执行以该字符串开头的最后一个命令," echo hello"。
教授说应该用字符串比较来完成。他说这不应该是非常复杂的。我已经设法制作了#34; !!"打印最后一个命令。但另外两次重新执行,我不知道使用什么技术。要打印历史记录,我只是将输入与字符串"历史记录"进行比较。并为" !!"我也在将它与输入流进行比较。但对于这些我不知道如何检查和比较输入。 strcmp是否可以用于此,或者我是否朝错误的方向看?
冒着听起来愚蠢的风险,我应该注意到我对编程仍然很陌生,特别是在C语言中,这个课程没有提供很多指导。