[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: