![](https://seccdn.libravatar.org/avatar/d8c390b539562da0987e077bcdecb4bb.jpg?s=120&d=mm&r=g)
On Fri, Dec 08, 2000, Christian Schult wrote:
* Alexander Fieger schrieb:
Ich möchte gerne, dass nach jedem Verzeichnisswechsel automatisch der Inhalt des Verzeichnisses (ls) angezeigt wird. Ich hab schon mit alias gespielt aber es leider nicht hinbekommen. Mit einem alias c='cd;clear;ls' funktioniert es.
Mit einem alias cd='cd;clear;ls' leider nicht. Ich hab schon die manpage von Bash und einige anderen Dokus gelesen aber nichts gefunden für eine Lösung meines Problems hilfreich sein könnte.
Du könntest dir eine Shell-Funktion schreiben, die du in die ~/.bashrc setzt:
cd() { builtin cd "$@" && clear; ls }
Da "cd" ein bash-internes Programm ist, muss man innerhalb der Funktion "cd" den Befehl "builtin" benutzen, damit die Shell zwischen der Funktion "cd" und dem shellinternen Befehl "cd" unterscheiden kann. Da Funktionen eine höhere Priorität als bashinterne Befehle haben, würde es sonst hier zu einer Rekursion kommen (die Funktion riefe sich selbst auf).
In csh/tcsh funktiniert der alias cd='cd;clear;ls', allerdings natürlich nur zum Wechsel ins $HOME-Verzeichnis. Die shell scheint alias-looping für interne Befehle automatisch zu verhindern. Bei externen Befehlen wäre die korrekte Syntax cd='\cd;clear;ls'. Dabei umgeht der \ den alias: oak ~> which ls ls: ein Alias für /usr/bin/ls $LS_OPTIONS oak ~> which \ls /usr/bin/ls Nur so der Vollständigkeit halber und falls sich jemand für csh interessiert... MfG Gunther -- Dipl.-Ing. Gunther Kuhlmann Gunther_Kuhlmann@mentorg.com Tel.: +44 (0)12 52 / 74 83 25 PGP: E6 BC 78 6B E6 09 C7 16 AB 5D 9A 9A D7 1C 01 FB -- --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com