首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以获取在父终端中运行的最后一个命令?

是否可以获取在父终端中运行的最后一个命令?
EN

Stack Overflow用户
提问于 2017-06-28 04:50:09
回答 1查看 201关注 0票数 0

我正在尝试以编程方式从bash终端从子进程(go可执行文件)中获取历史记录。我基本上是在寻找终端运行的最后N个命令。

流动:

  1. 开放式bash终端PID=5
  2. 运行一些命令(sed、rpm、gpg)
  3. 运行go可执行文件PID=32 PPID=5
  4. 从父进程(bash终端)获取命令和参数(sed、rpm、gpg)并打印它们

bash内置history在go/shell out下运行时不会产生适当的结果。

读取~/.bash_history并不准确,因为bash终端的历史记录是在提示关闭时写入的。

想知道这是否有可能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-28 06:03:47

按照建议的here,您可以使用history -a <file_path>将新命令保存到文件中,然后在子进程中可以从文件中读取最后N行(使用tail -n <N>)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44793881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档