在单击之前,这不是典型的“如何使bash提示具有颜色”问题。我已经自定义了bash提示符,如下所示:
[user @ host]----[$(pwd)]
$
通过将以下内容添加到我的〜/ .bashrc文件中,括号中的所有内容均为浅蓝色,其他所有内容(包括$)均为黑色
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
目的是使它在我使用'sudo su'时唯一改变的是将黑色$变成红色#。我查看了/etc/bash.bashrc和/ etc / profile中的内容,看看是否只有一行需要注释掉,但是关于debian_chroot的很多东西我都不了解,我也不想搞砸了 我该如何完成我想要的?
PS这就是我希望提示符看起来像root
[user @ host]----[$(pwd)]
(red)#
编辑:标记为已解决,在root完成我的目标的同时,将上述代码附加到〜/ .bashrc。另外,在上面的代码中,$(pwd)仅显示主目录(我想是因为打开终端时这是工作目录),并且从不更新。用\ w替换$(pwd)可以解决此问题,但是将主目录显示为~
,这是我试图避免的。
\e[01;31m
中\[...\]
。在手册的“促进”下对此进行了说明。另请参见mywiki.wooledge.org/BashFAQ/053
pwd
在提示中不起作用的原因是,您需要转义美元符号,否则$(pwd)
将在内容放入$ PS1 之前执行。您可以使用进行测试: PS1="\$(pwd) "
。