gpt4 book ai didi

简单 shell 的命令重新执行

转载 作者:行者123 更新时间:2023-11-30 17:36:44 25 4
gpt4 key购买 nike

我已经完成了一项作业,要求我在一个简单的 shell 中实现一个历史函数(用 C 语言,通过 PuTTY 远程使用 UNIX 盒子)。它本质上模仿了 csh 历史功能。它将命令行中过去的命令保存在格式如下的文件中,例如:

1 - 密码
2 - 回显你好
3 - whoami

我现在遇到的问题是如何让它重新执行命令。例如,输入“!3”再次执行whoami。输入“!echo”会重新执行以该字符串“echo hello”开头的最后一个命令。

教授说这应该使用字符串比较来完成。他说这不应该非常复杂。我成功地做出了“!!”也打印最后一个命令。但另外两次重新处决,我不知道用了什么技巧。要打印历史记录,我只是将输入与字符串“history”和“!!”进行比较我也将其与输入流进行了比较。但对于这些我不知道如何检查和比较输入。 strcmp 可以用于此目的还是我看错了方向?

冒着听起来很愚蠢的风险,我应该指出,我对编程仍然很陌生,特别是在 C 方面,并且本类(class)没有提供大量指导。

最佳答案

如果它是一个数字(提示:阅读 strtol ),然后检查数字。

如果不是数字,则搜索命令。

在内部,您可以将其存储为链表,其中每个节点包含数字和命令。

关于简单 shell 的命令重新执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22574733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com