linux-l: bash-prompt zu breit

Jens Dreger jens.dreger at physik.fu-berlin.de
Do Feb 10 18:28:20 CET 2000


On Thu, Feb 10, 2000 at 03:20:28PM +0100, Thomas Knop wrote:
> On, Don, 10 Feb 2000, Jens Dreger wrote:
> > Hallo !
> > 
> > Kann mir jemand sagen, wie ich den bash-prompt auf die letzten n
> > Segmente des Pfades beschraenke ? Es kann doch nicht angehen, dass das
> > nicht (einfach) geht. Also, statt
> > 
> > dreger at smart:/usr/local/und/noch/drei/tausend/verzeichnisse/weiter>
> > 
> > haette ich dann gerne sowas wie
> > 
> > dreger at smart:.../verzeichnisse/weiter>
> Wie wäre in /etc/profile oder änlich etwas in der Form:
> 
>     set_prompt ()
>     {
>         PS1="${HOST} ${USER} \\! (`echo ${PWD} | sed -e 's|.*'${HOME}'|~|' -e 's
> |.*[^/]/\([^/]*/[^/]*\)|\1|'`): "
>     }
>     cd      () { builtin cd $*; set_prompt; }
>     popd    () { builtin popd $*; set_prompt; }
>     pushd   () { builtin pushd $*; set_prompt; }
> 
>     set_prompt
> 
Danke. Sowas hatte ich schon befuerchtet und mir was in Richtung von
 PS1='\[\033[33;1m\]\u\[\033[0m\]@\[\033[32;1m\]\h\[\033[0m\]:\
$(echo ${PWD}|sed -e "s|.*[^/]/\([^/]*/[^/]*\)|..\1|")> '

ausgedacht. Aber dann wird bei jedem Hinschreiben des Prompts sed
ausgefuehrt. In Deiner Version passiert das nur, wenn sich wirklich
was aendert (durch die Vertauschung von " und '). Ich hoffe, es treten
keine unerwarteten side-effects auf. Bisher funktioniert's.

Danke nochmals,

Jens.






Mehr Informationen über die Mailingliste linux-l