命令执行完毕后是否会立即触发事件?

命令执行完毕后是否会立即触发事件?

在 Bash 中,输入命令(例如ls)后,它将执行该命令,并将其标准输出(如果未重定向)写入终端(在我们的示例中为当前目录的内容)。完成后,将使用新行中的 shell 提示符将控制权返回给用户。

我想知道在命令运行完毕之后以及命令提示符在新行开始之前是否会触发某种事件,可以通过编程方式捕获(即使用 shell 脚本)。

答案1

如果将 shell 变量设置PROMPT_COMMAND为命令,则每次 shell 即将发出(主)提示符时都会执行该命令。例如,

% ls
file1
file2
% PROMPT_COMMAND=date
Thu, Nov 20, 2014  1:23:42 PM
% ls
file1
file2
Thu, Nov 20, 2014  1:23:45 PM
%

这可以是一个程序、一个脚本或者其他任何东西。

相关内容