Weblog

Written on: 2005/03/13.

If you're interested in a bash shell prompt like mine, insert this code into your .bashrc, .bash_profile, .profile, or whatever your flavor of UNIX uses to create it:

For white terminals:

# create prompt
	PWDMAXLENGTH=30
	PROMPTTRUNCSYM="..."

	# Change the window title of X terminals
	case $TERM in
	    xterm*|rxvt|Eterm|eterm)
	        PROMPT_COMMAND_TITLE="\033]0;USER@HOSTNAME:CURRDIR\007"
	        ;;
	    screen)
	        PROMPT_COMMAND_TITLE='\033_USER@HOSTNAME:CURRDIR\033\\'
	        ;;
	esac

	PROMPT_COMMAND=promptcommand
	function promptcommand {
	    TMPTITLE=${PROMPT_COMMAND_TITLE/USER/$USER}
	    TMPHOST=${HOSTNAME%%.*}
	    TMPTITLE=${TMPTITLE/HOSTNAME/$TMPHOST}
	    TMPDIR=${PWD/$HOME/~}
	    TMPTITLE=${TMPTITLE/CURRDIR/$TMPDIR}
	    echo -ne $TMPTITLE

	    if [ ${#TMPDIR} -gt $PWDMAXLENGTH ]
	    then
	        PWDOFFSET=$(( ${#TMPDIR} - $PWDMAXLENGTH + ${#PROMPTTRUNCSYM} ))
	        TMPDIR="${PROMPTTRUNCSYM}${TMPDIR:$PWDOFFSET:$PWDMAXLENGTH}"
	    fi

	    case $TERM in
	        sun)
	            PS1="\[\e[1;34m\]\u@\[\e[1;35m\]\h:\[\e[1;31m\w>\[\e[0m\] "
	            ;;
	        *)
	            PS1="\[\033[1;34m\]\u\[\033[0m\]@\[\033[1;35m\]\h\[\033[0m\]:\[\033[1;31m\]$TMPDIR\[\033[0m\]> "
	            ;;
	    esac

	    unset TMPTITLE
	    unset TMPDIR
	    unset TMPHOST
	}

For black terminals:

# create prompt
	PWDMAXLENGTH=30
	PROMPTTRUNCSYM="..."

	# Change the window title of X terminals
	case $TERM in
	    xterm*|rxvt|Eterm|eterm)
	        PROMPT_COMMAND_TITLE="\033]0;USER@HOSTNAME:CURRDIR\007"
	        ;;
	    screen)
	        PROMPT_COMMAND_TITLE='\033_USER@HOSTNAME:CURRDIR\033\\'
	        ;;
	esac

	PROMPT_COMMAND=promptcommand
	function promptcommand {
	    TMPTITLE=${PROMPT_COMMAND_TITLE/USER/$USER}
	    TMPHOST=${HOSTNAME%%.*}
	    TMPTITLE=${TMPTITLE/HOSTNAME/$TMPHOST}
	    TMPDIR=${PWD/$HOME/~}
	    TMPTITLE=${TMPTITLE/CURRDIR/$TMPDIR}
	    echo -ne $TMPTITLE

	    if [ ${#TMPDIR} -gt $PWDMAXLENGTH ]
	    then
	        PWDOFFSET=$(( ${#TMPDIR} - $PWDMAXLENGTH + ${#PROMPTTRUNCSYM} ))
	        TMPDIR="${PROMPTTRUNCSYM}${TMPDIR:$PWDOFFSET:$PWDMAXLENGTH}"
	    fi

	    case $TERM in
	        sun)
	            PS1="\[\e[32;1m\]\u@\[\e[36;1m\]\h:\[\e[31;1m\w>\[\e[0m\] "
	            ;;
	        *)
	            PS1="\[\033[32;1m\]\u\[\033[0m\]@\[\033[36;1m\]\h\[\033[0m\]:\[\033[31;1m\]$TMPDIR\[\033[0m\]> "
	            ;;
	    esac

	    unset TMPTITLE
	    unset TMPDIR
	    unset TMPHOST
	}