根据终端上下文运行脚本

根据终端上下文运行脚本

是否可以让当前上下文或最前端的面向用户的流程在发生变化时触发脚本?

例如,用户

  • 从命令提示符开始,
  • 然后进入 Emacs
  • 退出并返回命令行
  • 进入顶部
  • 退出
  • ETC。

对于每一个转换,我可以让终端自动运行一个脚本,获取新进程的名称,并可能根据该进程执行操作吗?

答案1

您可以使用 rcaloras'bash-preexec脚本用于在用户从 bash 运行某些内容时运行预执行命令。如果用户进入任何其他 shell/应用程序,您的预执行脚本将首先运行,并且可以运行其自己的处理程序。要判断用户何时退出该程序,一个潜在的解决方案是让您的脚本继续在后台轮询以查看 pid 是否仍然存在。

相关超级用户答案

相关内容