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