Аномалия с определением bash PS1

Мой пользователь root и администратор имеют один и тот же файл .bashrc.

Секция подсказок в .bashrc выглядит следующим образом:

         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

Но проблема в том, что администратор и пользователь root имеют разные подсказки.

приглашение администратора:

admin @ hostname: ~ $

, а приглашение root -

root @ hostname: / home #

Таким образом, кажется, что root использует версию "xterm", а admin - нет.

Почему файл .bashrc имеет такую ​​разницу в приглашениях? Как мне заставить администратора также использовать версию xterm?

Как мне проверить это условие?

Если я запускаю echo $TERM во время работы от имени администратора, я получаю xterm, насколько я могу судить, он должен использовать версию xterm для пользователя с правами администратора.

3
задан 3 March 2011 в 14:34

1 ответ

Это работает как ожидалось.

По соглашению приглашение заканчивается на $ для пользователей и на # для root. Это \$ в PS1.

Другим отличием является ~ против /home. Это тоже нормально. Это \w часть приглашения, текущий рабочий путь. Если оно начинается с содержания $HOME, оно заменяется на ~.

0
ответ дан 3 March 2011 в 14:34

Другие вопросы по тегам:

Похожие вопросы: