tl; dr
declare -f foo
typeset -f foo
type -f
/ whence -f
/which
Sind in diesem Fall nicht optimal , weil ihr Zweck die Befehlsform mit dem berichten , ist höchste Priorität , die definiert wird , geschieht mit diesem Namen (es sei denn , Sie auch angeben -a
, in welchem Fall alle Befehlsformen gemeldet werden) - als spezifisch gegen Berichterstattung auf dem Operanden als Funktion .
Die -f
Option wird das nicht ändern - es ist nur beinhaltet Shell - Funktionen in dem Look - up.
Aliase und Shell - Schlüsselwörter haben höhere Priorität als Shell - Funktionen, so im Fall bei der Hand, wenn ein Alias foo
wurde auch definiert, type -f foo
würden die Bericht Alias - Definition.
Beachten Sie, dass zsh
Aliase in Skripts standardmäßig nicht erweitern (wie auch ksh
, aber nicht bash
), und selbst wenn Sie Alias Erweiterung zuerst ab drehen, type -f
/ whence -f
/ which
noch Aliase berichtet zuerst.
declare -f foo
ist die bessere Wahl auch in Bash - und es funktioniert auch inzsh
; siehe meine Antwort für Hintergrundinformationen.