2015-12-26 5 views
3

я это в /etc/bash.bashrc на моей системе Linux:Что делает этот PROMPT_COMMAND?

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

От человека Баша Я понимаю, что он задает команду, которая будет выполняться до выдачи каждой строки, но мне интересно, что именно он делает.

ответ

2

В основном, он обновляет название терминала после каждой команды, которую вы выдаете, чтобы отражать текущие значения переменных, используя escape-последовательности XTerm.

Некоторые из управляющих последовательностей, признанных XTerm-совместимых эмуляторы терминалов:

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 является экранирующим символом (\033), и это BEL колокола символ (\007).

1

Устанавливает, что ваше приглашение будет выполняться в настоящее время в дополнение к printf, в котором будет показано ваше имя пользователя @ вашего имени хоста с вашим текущим рабочим каталогом. Вам придется искать код терминала \033]0; самостоятельно.