这个 PROMPT_COMMAND 的作用是什么?

pla*_*etp 5 linux bash command-prompt

/etc/bash.bashrc我的 Linux 系统上有这个:

PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'

从 man bash 我了解到它设置了一个在发出每个提示之前要执行的命令,但我想知道它到底在做什么。

Eug*_*ash 4

基本上,它会在您发出每个命令后使用 XTerm 转义序列更新终端的标题,以反映 envariables 的当前值。

\n\n

XTerm 兼容终端仿真器可识别的一些转义序列:

\n\n
ESC]0;stringBEL \xe2\x80\x94 Set icon name and window title to string\nESC]1;stringBEL \xe2\x80\x94 Set icon name to string\nESC]2;stringBEL \xe2\x80\x94 Set window title to string\n
Run Code Online (Sandbox Code Playgroud)\n\n

其中ESC是转义字符 ( \\033),BEL是响铃字符 ( \\007)。

\n