[linux-l] Re: shell: internal "which" checks aliases and functions

Sven Guckes maillist-belug at guckes.net
Di Dez 12 14:21:11 CET 2006


* Jan-Benedict Glaw <jbglaw at lug-owl.de> [2006-12-12 14:02]:
> On Tue, 2006-12-12 13:06:56 +0100, Sven Guckes <maillist-belug at guckes.net> wrote:
> > "which" ist bei bash aber keine interne funktion,
> > dh es kann auch keine internen alias oder funktionen
> > der bash erkennen, obwohl nach eingabe einer zeile jene
> > zuerst die aliase bzw funktionen ueberprueft werden.
> >
> > darum kann ein "which foo" dir ein "/usr/bin/foo" liefern - aber wenn
> > du "foo" eingibst, dann schlaegt ein alias bzw eine funktion zu. :-P
> >
> > diese ueberraschung bin ich zwar bei der
> > bash "gewohnt", aber ich mag sie nicht.
> > da lobe ich mir das "whence" in der zsh, denn das
> > kann aliase und funktionen zur laufzeit erkennen.
>
> Warum `which' und `whence', wenn `command' immer tun sollte?

"command" benutzt man *nachdem* man festgestellt hat, dass ein
kommando von einem alias bzw von einr funktion verdeckt wird.  ;-)

wenn ich aber ein alias bzw eine funktion ein externes,
ausfuehrbares kommando im $PFAD verdecket, dann
moechte ich, dass meine shell mir das auch sagt.

beispiel:
  zsh> alias vim='vim -X'
  zsh> vim () { echo $* }
  zsh> which vim
  vim: aliased to vim -X
  vim () { echo $* }
  /usr/bin/vim
  /usr/bin/X11/vim

ich empfinde diese anzeige als
ein sehr angenehmes feature.  ymmv.

bash



Mehr Informationen über die Mailingliste linux-l