# Special BASH Prompt # Prompt for BASH by Matous Jan Fialka, Variable computing Prague. # You can redistribute copyies of this file freely. # Copylefted by Matous Jan Fialka, Variable computing Prague, 2004. function special_prompt(){ # prompt commands and constants local p_u="$USER" local p_p="`pwd`" local p_t="`date +%R:%S`" local p_h="\h" local p_f="`find . -maxdepth 1 -mindepth 1 -type f | wc -l | tr -d '[:space:]'` " local p_d="`find . -maxdepth 1 -mindepth 1 -type d | wc -l | tr -d '[:space:]'` " local p_l="`find . -maxdepth 1 -mindepth 1 -type l | wc -l | tr -d '[:space:]'` " local p_z="`ps ax | wc -l | awk '{print $1}'`" local p_j="`jobs -s | wc -l | sed -e 's/ //g'`" # colors definitions local c_n="\[\e[0m\]" # normal local c_d="\e[31;1m" # dir local c_u="\e[32;1m" # user local c_r="\e[31;1m" # root local c_h="\e[33;1m" # host local c_a="\e[37;1m" # at local c_p="\e[31;1m" # prompt local c_t="\e[36;1m" # date/time # some special stuff (beware of root, make "/home" be tilda) if [ "$p_u" == "root" ]; then p_u="!!! ROOT !!!" ; c_u="${c_r}" ; fi local p_p=${PWD//#\/home\//~} # new prompt case $TERM in xterm*) local t_b="\[\033]0;X Terminal SHELL: \w\007\]" ;; *) local t_b='' ;; esac PS1=$(echo "${t_b}\n\ ${c_d}${p_p}${c_n} \ (${p_f}files${c_n}, ${p_d}directories, ${p_l}links)${c_n}\n\ ${c_s}${c_t}${p_t}${c_n} \ ${c_u}${p_u}${c_n} \ ${c_a}at${c_n} \ ${c_h}${p_h}${c_n} (${p_z} jobs, ${p_j} stopped, last exitcode \$?) \ ${c_p}\n:${c_n}") } PROMPT_COMMAND=special_prompt # End of file