[stick@richnet.net: Re: ANSI Color Escapes in $PS1.. heh.]
Forwarded on request. This sure has charm ;)
Marcus
----- Forwarded message from stick@richnet.net -----
Delivered-To: Marcus.Brinkmann@ruhr-uni-bochum.de
Subject: Re: ANSI Color Escapes in $PS1.. heh.
To: Marcus.Brinkmann@ruhr-uni-bochum.de (Marcus Brinkmann)
Date: Tue, 8 Dec 1998 00:36:51 -0500 (EST)
From: stick@richnet.net
Reply-to: stick@richnet.net
X-UIDL: d541f21f09d02714a084baa0f026dcfa
So this is a little late...had some e-mail issues that took too long to
sort-out...
Marcus Brinkmann said
> On Wed, Dec 02, 1998 at 12:41:06PM -0600, Ryan King wrote:
> > Just how stupid an idea did I have when I did this:
> >
> > $PS1="[\e[31m\h\e[m:\e[34m\u\e[m:\e[31m\w\$\e[m]"
> >
> > in my /etc/profile?
> >
> > It looks really nifty until I try to do commands that wrap around, in which
> > case the first line returns, but keeps going on the current spot.
>
> What the other said, is correct, so you already know what is happening here.
> However, here is just another example for you:
>
> # ~/.bash_profile: executed by bash(1) for login shells.
>
> [...snipped...]
>
> set_prompt ()
> {
> local SAVE_CRS=`tput sc 2> /dev/null`
> local RESET_CRS=`tput rc 2> /dev/null`
> local CLOCKPOS=`tput cup 0 $(($HZ-10)) 2> /dev/null`
> local FOREG=`tput setaf 6 2> /dev/null` #4
> local ALT_FOREG=`tput setaf 3 2> /dev/null` #4
> local BACKG=`tput setab 0 2> /dev/null` #6
> local NORMAL=`tput sgr0 2> /dev/null`
> local BOLD=`tput bold 2> /dev/null`
>
> PS1="\[${NORMAL}${SAVE_CRS}${CLOCKPOS}${FOREG}${BACKG}${BOLD} \@ ${RESET_CRS}${BOLD}${ALT_FOREG}\]\u\[${NORMAL}\]@\h:\w\$ "
> }
> set_prompt
>
I took this a little over-the-top, but it was a fun excersize. Here's
my adaptations to set_prompt():
set_prompt ()
{
local EUID=$1;
local NORMAL=`tput sgr0 2> /dev/null`;
local BOLD=`tput bold 2> /dev/null`;
# local DIM=`tput dim 2> /dev/null`;
local BLINK=`tput blink 2> /dev/null`;
# local REVERSE=`tput rev 2> /dev/null`;
# local STANDOUT=`tput smso 2> /dev/null`;
# local UNDERLINE=`tput smul 2> /dev/null`;
# local INVISIBLE=`tput invis 2> /dev/null`;
# local BEEP=`tput bel 2> /dev/null`;
# local HOME=`tput home 2> /dev/null`;
# local CLEAR=`tput clear 2> /dev/null`;
# local FG_BLACK=`tput setaf 0 2> /dev/null`;
local FG_RED=`tput setaf 1 2> /dev/null`;
# local FG_GREEN=`tput setaf 2 2> /dev/null`;
local FG_YELLOW=`tput setaf 3 2> /dev/null`;
# local FG_BLUE=`tput setaf 4 2> /dev/null`;
# local FG_MAGENTA=`tput setaf 5 2> /dev/null`;
local FG_CYAN=`tput setaf 6 2> /dev/null`;
local FG_WHITE=`tput setaf 7 2> /dev/null`;
# local BG_BLACK=`tput setab 0 2> /dev/null`;
# local BG_RED=`tput setab 1 2> /dev/null`;
# local BG_GREEN=`tput setab 2 2> /dev/null`;
# local BG_YELLOW=`tput setab 3 2> /dev/null`;
# local BG_BLUE=`tput setab 4 2> /dev/null`;
# local BG_MAGENTA=`tput setab 5 2> /dev/null`;
# local BG_CYAN=`tput setab 6 2> /dev/null`;
# local BG_WHITE=`tput setab 7 2> /dev/null`;
if [ "$EUID" == "0" ]; then
PS1="\[${NORMAL}${BOLD}${BLINK}${FG_RED}\]\u\[${NORMAL}${BOLD} \
${FG_WHITE}\]@\[${FG_CYAN}\]\h\[${NORMAL}\]: ";
else
PS1="\[${NORMAL}${BOLD}${FG_YELLOW}\]\u\[${FG_WHITE}\]@\[\
${FG_CYAN}\]\h\[${NORMAL}\]: ";
fi;
PS2="\[${NORMAL}${BOLD}${FG_YELLOW}\]continue\[${NORMAL}\]> ";
return
}
set_prompt $EUID
For root the username is in blinking, bright red - to help remind you of
your login. For Regular Users the username is bright yellow. From there
it's a bright white '@' and then the hostname in bright cyan. Oh, yeah, I
almost forgot the ": " in bright white at the end. [Too much time waiting
for downloads...]
Use it if you want.
Chuck
PS. Don't forget to put the set_prompt() function somewhere where it
will get executed for those times you `su` or `su -`.
--
Chuck Stickelman, Owner E-Mail: <stick@richnet.net>
Practical Network Design Voice: +1-419-529-3841
9 Chambers Road FAX: +1-419-529-3625
Mansfield, OH 44906-1301 USA
----- End forwarded message -----
--
"Rhubarb is no Egyptian god." Debian GNU/Linux finger brinkmd@
Marcus Brinkmann http://www.debian.org master.debian.org
Marcus.Brinkmann@ruhr-uni-bochum.de for public PGP Key
http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/ PGP Key ID 36E7CD09
Reply to: