这个 PROMPT_COMMAND 是做什么的?
What does this PROMPT_COMMAND do?
我的 Linux 系统上的 /etc/bash.bashrc
中有这个:
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "3]0;%s@%s:%s[=12=]7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
来自 man bash 我知道它设置了一个在发出每个提示之前要执行的命令,但我想知道它到底在做什么。
将您的提示设置为现在正在执行的任何内容,此外还有 printf
将显示您的用户名@您的主机名和您当前的工作目录。您必须自己查找 3]0;
终端代码。
基本上,它会在您发出每个命令后使用 XTerm 转义序列更新终端的标题,以反映环境变量的当前值。
XTerm-compatible 终端仿真器识别的一些转义序列:
ESC]0;stringBEL — Set icon name and window title to string
ESC]1;stringBEL — Set icon name to string
ESC]2;stringBEL — Set window title to string
其中ESC
是转义符(3
),BEL
是响铃符([=14=]7
)。
我的 Linux 系统上的 /etc/bash.bashrc
中有这个:
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "3]0;%s@%s:%s[=12=]7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
来自 man bash 我知道它设置了一个在发出每个提示之前要执行的命令,但我想知道它到底在做什么。
将您的提示设置为现在正在执行的任何内容,此外还有 printf
将显示您的用户名@您的主机名和您当前的工作目录。您必须自己查找 3]0;
终端代码。
基本上,它会在您发出每个命令后使用 XTerm 转义序列更新终端的标题,以反映环境变量的当前值。
XTerm-compatible 终端仿真器识别的一些转义序列:
ESC]0;stringBEL — Set icon name and window title to string
ESC]1;stringBEL — Set icon name to string
ESC]2;stringBEL — Set window title to string
其中ESC
是转义符(3
),BEL
是响铃符([=14=]7
)。