/ etc / bashrc переопределяет мои настройки в домашней .bashrc

у меня есть следующий код для моего приглашения в .bashrc в домашней директории:

PS1_TIME='\033[01;31m\]\t \033[01;32m\]' PS1_USERNAME='\[\e[1;36m\]\u\e[1;37m\]@\e[1;32m\]\h\[\033[00m\]' PS1_LOCATION='\[\033[01;34m\]\w\[\033[00m\]' PS1=$PS1_TIME$PS1_USERNAME':'$PS1_LOCATION'\n\$ ' PS2='\[\033[01;36m\]>' 

У меня также есть следующая конфигурация в / etc / bashrc

 # are we an interactive shell? if [ "$PS1" ]; then if [ -z "$PROMPT_COMMAND" ]; then case $TERM in xterm*|vte*) if [ -e /etc/sysconfig/bash-prompt-xterm ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then PROMPT_COMMAND="__vte_prompt_command" else PROMPT_COMMAND='printf "1\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; screen*) if [ -e /etc/sysconfig/bash-prompt-screen ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen else PROMPT_COMMAND='printf "2\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; *) [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default ;; esac fi и # are we an interactive shell? if [ "$PS1" ]; then if [ -z "$PROMPT_COMMAND" ]; then case $TERM in xterm*|vte*) if [ -e /etc/sysconfig/bash-prompt-xterm ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then PROMPT_COMMAND="__vte_prompt_command" else PROMPT_COMMAND='printf "1\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; screen*) if [ -e /etc/sysconfig/bash-prompt-screen ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen else PROMPT_COMMAND='printf "2\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; *) [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default ;; esac fi и # are we an interactive shell? if [ "$PS1" ]; then if [ -z "$PROMPT_COMMAND" ]; then case $TERM in xterm*|vte*) if [ -e /etc/sysconfig/bash-prompt-xterm ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then PROMPT_COMMAND="__vte_prompt_command" else PROMPT_COMMAND='printf "1\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; screen*) if [ -e /etc/sysconfig/bash-prompt-screen ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen else PROMPT_COMMAND='printf "2\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; *) [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default ;; esac fi 

В результате моя подсказка оболочки настроена на две части: подсказка из / etc объединена с моими домашними настройками

 [PS1 from ect][PS1 from home dir]: 

Как изменить мои локальные настройки, чтобы мой домашний каталог переопределял настройки по умолчанию?

Я не хочу изменять файл в etc или мне нужно?

    PS1 и PROMPT_COMMAND – две разные переменные с разными целями. И, как говорится в руководстве Bash :

    PROMPT_COMMAND

    Если установлено, значение интерпретируется как команда, выполняемая перед печатью каждого основного приглашения ( $PS1 ).

    Обратите внимание, что PROMPT_COMMAND предназначен не для использования в качестве приглашения, а в качестве команды, которая должна быть выполнена до того, как будет напечатано фактическое приглашение.

    Чтобы это исправить, и если вы не хотите редактировать /etc/bashrc , вам нужно либо сбросить, либо присвоить нулевое значение PROMPT_COMMAND в вашем локальном .bashrc :

     unset PROMPT_COMMAND # or PROMPT_COMMAND= 

    Пример в интерактивном сеансе ( foobar$ – мое первоначальное приглашение):

     foobar$ printf 'PROMPT_COMMAND: [%s]\nPS1: [%s]\n' "$PROMPT_COMMAND" "$PS1" PROMPT_COMMAND: [printf foo] PS1: [bar$ ] foobar$ 

    PROMPT_COMMAND :

     foobar$ unset PROMPT_COMMAND bar$ 

    Присвоение нулевого значения PROMPT_COMMAND :

     foobar$ PROMPT_COMMAND= bar$