Я заметил, что в ~/.bashrc
есть два набора PS1
:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$'
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1 = "\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\a\]$PS1"
;;
*)
;;
esac
Первый проверяет $color_prompt
, верно это или нет, и принимает решение по тексту подсказки.
Второй проверяет $TERM
и выбирает название.
Но оба они изменяют одну и ту же переменную среды, поэтому, когда терминал запускается и «видит», что PS1
установлен для текста подсказки, как он также может установить заголовок? ~/.bashrc
загружается дважды?
Первое условие устанавливает $PS1
в зависимости от того, включен $color_prompt
или нет. Второй назначенный расширяет это, устанавливая $PS1
выражение, содержащее предыдущее значение $PS1
PS1 = "\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\a\]$PS1"
# Here ---------------------------------------------------^
О, я вижу, я пропустил это. спасибо вам