bash PS1 定义异常

bash PS1 定义异常

我的根用户和管理员用户都有相同的.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

但问题是admin用户和root用户的提示不同。

管理员的提示是:

管理员@主机名:~$

root 的提示符是

root@主机名:/home#

因此看起来 root 使用的是“xterm”版本而 admin 没有使用。

为什么.bashrc文件的提示有这种差异?如何让管理员用户也使用 xterm 版本?

我该如何测试这种情况?

如果我echo $TERM以管理员用户身份运行,xterm据我所知,它应该使用管理员用户的 xterm 版本。

答案1

它按预期工作。

$按照惯例,对于用户,提示符以 结尾,而#对于 root,则以 结尾。这是\$中的PS1

另一个不同之处是~vs /home。这也是正常的。它是\w提示符的一部分,即当前工作路径。如果它以 的内容开头$HOME,则将其替换为~

相关内容