Re: Shell prompts (was Re: floppy permissions)
On Wed, Apr 18, 2001 at 12:48:55AM -0700, Karsten M. Self wrote:
> > It's a shame that you've solved your problem; now I don't have an
> > excuse to tell you that this is a great root prompt.
>
> Not half bad. My own approach is slightly more subtle, but reasonably
> effective:
Here's mine, while we're comparing; I put "source $HOME/.prompt &&
prompt" in by .bashrc.
Rob
--
... this must be what it's like to be a COLLEGE GRADUATE!!
#!/bin/bash
black () { echo -en "\e[0;30m" ; }
red () { echo -en "\e[0;31m" ; }
green () { echo -en "\e[0;32m" ; }
brown () { echo -en "\e[0;33m" ; }
blue () { echo -en "\e[0;34m" ; }
purple () { echo -en "\e[0;35m" ; }
cyan () { echo -en "\e[0;36m" ; }
gray () { echo -en "\e[0;37m" ; }
dgray () { echo -en "\e[1;30m" ; }
bred () { echo -en "\e[1;31m" ; }
bgreen () { echo -en "\e[1;32m" ; }
bbrown () { echo -en "\e[1;33m" ; }
bblue () { echo -en "\e[1;34m" ; }
pink () { echo -en "\e[1;35m" ; }
bcyan () { echo -en "\e[1;36m" ; }
white () { echo -en "\e[1;37m" ; }
norm () { echo -en "\e[0m" ; }
prompt () {
local BLACK="\[\e[0;30m\]"
local RED="\[\e[0;31m\]"
local GREEN="\[\e[0;32m\]"
local BROWN="\[\e[0;33m\]"
local BLUE="\[\e[0;34m\]"
local PURPLE="\[\e[0;35m\]"
local CYAN="\[\e[0;36m\]"
local GRAY="\[\e[0;37m\]"
local DGRAY="\[\e[1;30m\]"
local BRED="\[\e[1;31m\]"
local BGREEN="\[\e[1;32m\]"
local BBROWN="\[\e[1;33m\]"
local BBLUE="\[\e[1;34m\]"
local PINK="\[\e[1;35m\]"
local BCYAN="\[\e[1;36m\]"
local WHITE="\[\e[1;37m\]"
local NORM="\[\e[0m\]"
local TIME="$PURPLE$(date +%H:%M)$NORM "
[ "$(whoami)" == "root" ] && local DOLLAR="$WHITE\\$\[\]${NORM} " \
|| local DOLLAR="$GREEN\\$\[\]${NORM} "
# this will let me put a history number in ... I've decided I don't like it
#local HIST="$RED\\!${NORM} "
if [ $PWD == $HOME ] ;
then
local DIR=""
local TBAR="\u@\h"
else
local DIR="$BROWN[\w]$NORM\n"
local TBAR="\u@\h:\w"
fi
[ "$TITLEBAR" == "" ] || local TBAR=$TITLEBAR
local TBAR="\[\e]0;$TBAR\007\]"
case $HOSTNAME in
peon) local HOST="" ;;
*) local HOST="$BLUE\h$NORM " ;;
esac
local TTY="$(tty | cut -d/ -f3)"
if [ "$TTY" == "pts" ]
then
local TTY="$TTY/$(tty | cut -d/ -f4)"
fi
local TTY="$CYAN$TTY$NORM "
case $TERM in
xterm*) local TBAR=$TBAR
local TTY="";;
dtterm*) local TBAR=$TBAR
local TTY="";;
*) local TBAR=""
local TTY=$TTY ;;
esac
export PS1="$TBAR$DIR$TIME$HOST$TTY$DOLLAR"
export PROMPT_COMMAND='prompt'
} && prompt
Reply to: