![每次执行命令行时运行 bash 脚本](https://linux22.com/image/1141032/%E6%AF%8F%E6%AC%A1%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%97%B6%E8%BF%90%E8%A1%8C%20bash%20%E8%84%9A%E6%9C%AC.png)
我是一个新的 Ubuntu/Linux 用户,我想问一个如上述标题所述的问题。
例如,我有一个 bash 文件./script
,我想让它在我输入任何命令行时自动运行。一旦我执行命令行,pwd
就会./script
执行。一旦我输入下一个命令行ls -la
,就会./script
再次执行。
答案1
您需要设置PROMPT_COMMAND
变量。来自man bash
:
PROMPT_COMMAND
If set, the value is executed as a command prior to
issuing each primary prompt.
例如,这将在/tmp/PC
每次执行命令时写入当前日期:
$ PROMPT_COMMAND="date > /tmp/PC"
答案2
您正在寻找PROMPT_COMMAND
环境变量,该变量的值将作为命令执行,在终端中给出的每个命令执行之后,就在显示下一个提示之前。
例如设置为:
export PROMPT_COMMAND='/path/to/script'
/path/to/script
首先使脚本可执行。
现在脚本将在每个命令之后运行。
需要注意的是,如果你不想导出变量,即使其成为 shell 变量而不是环境变量,请删除export
:
PROMPT_COMMAND='/path/to/script'
从man bash
:
PROMPT_COMMAND
If set, the value is executed as a command prior to issuing each primary prompt.