Anomalia com definição bash PS1

3

Meus usuários root e admin têm o mesmo arquivo .bashrc .

A seção de prompt do .bashrc é a seguinte:

         if [ "$color_prompt" = yes ]; then
                PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[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

Mas o problema é que o usuário administrador e o usuário root têm prompts diferentes.

O aviso do administrador é:

  

admin @ hostname: ~ $

e o prompt do root é

  

root @ hostname: / home #

Então parece que o root está usando a versão "xterm" e o admin não está.

Por que o arquivo .bashrc tem essa diferença nos prompts? Como faço para que o usuário administrador também use a versão xterm?

Como eu testaria essa condição?

Se eu rodar echo $TERM enquanto estiver rodando como o usuário admin eu recebo xterm então, até onde eu saiba, ele deve estar usando a versão xterm para o usuário admin.

    
por Michael Wiles 03.03.2011 / 11:13

1 resposta

3

Funciona como esperado.

Por convenção, o prompt termina com $ para usuários e # para raiz. Este é o $ em PS1 .

A outra diferença é o ~ vs /home . Isso também é normal. É a parte \w do prompt, o caminho de trabalho atual. Se começar com o conteúdo de $HOME , ele será substituído por ~ .

    
por shellholic 03.03.2011 / 11:44