【问题标题】:Shell history command- functionShell 历史命令功能
【发布时间】:2013-12-25 00:40:31
【问题描述】:

您好,我正在尝试在 linux 上实现一个 shell,我想将 shell 历史中的最后 10 个命令排成一行。

我正在使用system("cat ~/.bash_history"); 命令,但我不知道如何仅显示最后 10 个命令。

提前致谢

【问题讨论】:

  • 你的任务肯定比你的外壳需要更多的你来外壳到另一个外壳(系统)?
  • 是的,它们都有相同的结果。如果我想重复列出的命令之一该怎么办?
  • '如果我想重复列出的命令之一,我应该怎么做?'您应该获取命令的文本并再次通过您的 shell 运行它,就好像用户刚刚键入它一样。你确实有你的外壳结构,所以做这些事情是微不足道的,不是吗?
  • 是的,我愿意。这是我唯一挣扎的部分。但我没有提到的是,例如用户输入“2”,所以历史列表的第二个命令应该执行。但我似乎无法实现

标签: c linux function shell command


【解决方案1】:

尝试 tail 命令,-n 是最后一行的数量,

system("tail -n 10 ~/.bash_history");

【讨论】:

    猜你喜欢
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2013-08-21
    相关资源
    最近更新 更多