在每个 shell 命令末尾添加后缀

在每个 shell 命令末尾添加后缀

是否可以在终端中输入的每个命令末尾自动添加一些字符。

例如,如果我写

sudo apt-get update

shell 将执行

sudo apt-get update && notify-send Done

没有我写这个&& notify-send Done部分。

提前致谢!

答案1

如果您使用bash作为默认 shell,则可以设置PROMPT_COMMAND

bash手册页中:

PROMPT_COMMAND
If set, the value is executed as a command prior to issuing each primary prompt.

因此,只需粘贴以下行即可.bashrc获得每个命令的通知:

PROMPT_COMMAND="notify-send Done"

因此,每次调用 bash 提示符时(命令完成时的正常行为,无论成功与否),您都会收到通知。

笔记:如果您按下,您也会收到通知,Enter因为提示将再次显示。

答案2

您可以将一些字符绑定到一个enter键:

$ bind '"\C-M":" && echo test\n"'

这样做有一些缺点,例如如果你只按 Enter 键:

-bash: syntax error near unexpected token `&&'

您可以通过用字符终止行来阻止此效果#- 它会将附加的文本变成无害的注释。

但我还是要说,这听起来是一个非常糟糕的主意。

相关内容