Linux: My bash prompt
There seems to be a semi-meme going [around][2] on some of the planets I read.
My concern is long directory paths and I wanted a dymanic solution for it. Surely, I cannot be the first person to think of it, but I haven’t seen it in use anywhere else.
jolexa @ helios :: ~ %%andjolexa @ helios :: ~ %% cd projects/prefix-tinderbox/really_long_dirname_so_that_binpkgs_can_be_shortened/a/b/ jolexa @ helios :: .../a/b %%
(the colors and wrapping are representitive only)
and the code that produces that:
_chomp_path() {
local path=${1/${HOME}/\~}
local last=${path} sedout= count=0 count2=0
sedout=$(echo ${path} | sed -e 's:/: :g')
for i in ${sedout}; do
(( count++ ))
done
if ((count > 2)); then
last="..."
for i in ${sedout}; do
(( count2++ ))
if (( count2 >= count - 1 )); then
last+="/$i"
fi
done
fi
echo ${last}
}
PS1='\[\033[1;34m\]\u \[\033[1;32m\]@\[\033[1;34m\] \h \[\033[1;30m\]::\[\033[1;37m\] $(_chomp_path $(pwd)) \[\033[1;30m\]%%\[\033[0m\] '
If anyone wants to improve that function, let me know. It “fails” on directories with spaces in it.
[2]: http://www.linuxized.com/2010/08/quicky-changing-your-shell-prompt