我正在使用 MacBook OSX,并管理机器内的一些虚拟机。我经常犯错误,因为所有提示都有相同的颜色和类型,所以我想区分它们。
首先,我想让root
帐户显示为红色,因为它本身就很危险!
其次,我希望能够为属于我的服务器的特定 IP 地址着色,例如“mywebserver.local”(其地址位于 /etc/hosts 内)和“192.168.54.1”。
我现在正在使用的是:
green=$(tput setaf 2);
yellow=$(tput setaf 3);
reset=$(tput sgr0);
PS1='\['"$green"'\]\u\['"$reset"'\]@\['"$yellow"'\]\h:\W\$:\['"$reset"'\] '
它只部分满足了我的要求。我该如何输入条件?
答案1
你可能希望它是这样:
[ $USER = root ] && PS1="\033[0;40;1;91[ root > ]\033[0;1;94m " || {
HOST=`hostname`
if [ $HOST = 'mammothpc_prehistoric' ] ; then
PS1=...
elif [ $HOST = 'progueing_alone' ] ; then
PS1=...
elif [ $HOST = 'guru_pro_server' ] ; then
PS1=...
else
echo 'Error 404 : no such errors found.'
PS1=...
}
相反,顺便说一下,您还可以设置一些颜色变量并进一步将整个方案分配给PS1
:
PS1="$FG[ $USER@$HOST ] : $reset"
答案2
这不是一个答案,而是一个很棒的指南,它不仅描述了我想要实现的目标,还描述了许多其他有用的东西:https://www.digitalocean.com/community/tutorials/how-to-customize-your-bash-prompt-on-a-linux-vps