我当前的提示已按以下方式进行了着色和编辑-
#!/bin/bash
# GIT Prompt help
if tput setaf 1 &> /dev/null; then
tput sgr0; # reset colors
bold=$(tput bold);
reset=$(tput sgr0);
txtund=$(tput sgr 0 1);
black=$(tput setaf 0);
blue=$(tput setaf 33);
cyan=$(tput setaf 37);
green=$(tput setaf 64);
orange=$(tput setaf 166);
purple=$(tput setaf 125);
red=$(tput setaf 124);
violet=$(tput setaf 61);
white=$(tput setaf 15);
yellow=$(tput setaf 136);
else
bold='';
reset="\e[0m";
black="\e[1;30m";
blue="\e[1;34m";
cyan="\e[1;36m";
green="\e[1;32m";
orange="\e[1;33m";
purple="\e[1;35m";
red="\e[1;31m";
violet="\e[1;35m";
white="\e[1;37m";
yellow="\e[1;33m";
fi;
ORIG=$PS1
HOST=$HOSTNAME
PS1="\[${txtund}${green}\]${HOST}\[\[${reset}\]";
PS1+="\$(prompt_git \"\[${white}\] on \[${violet}\]\")";
PS1+="\[${reset}\]";
PS1+="\[ at - ${orange}\W\]";
PS1+="\[${reset}\]";
PS1+="\[ - \u \]";
PS1+="\n\$ ";
我知道那行PS1 + =“ [-\ u]”; 会告诉我我当前的用户。但是,如果它是根目录,我希望该部分为红色。所有其他用户应为灰色的默认颜色。有没有一种方法可以根据当前用户更改该部分的颜色,还是应该只声明一个变量并使用IF语句插入该部分或以红色作为颜色的已修改部分?
对于所有普通用户,我的预期输出为灰色命名用户。根应该是红色的。这是BASH。
您可以通过多种方式检查用户是否为root用户(然后设置PS1):
$USER
,$(whoami)
($(whoami)
超级用户.NB的输出可以称为其他名称,但通常称为root
。$EUID
或$UID
(有关详细信息,请参见此处)。UID 0始终是超级用户。因此,例如,您可以将行替换为PS1+="\[ - \u \]"
:
if [ $EUID -eq 0 ]; then
PS1+="\[ - ${red}\u \]";
else
PS1+="\[ - \u \]";
fi
您还可以在行中设置另一个自定义变量:
PS1+="\[ - \u ${usercolor}\]"
并在此之前使用条件语句来更改颜色:
if [ $EUID -eq 0 ]; then
usercolor="\e[1;31m";
fi
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句