Mit welchem Kommando können Sie sich alle selbstdefinierten Funktionen
in der bash anzeigen lassen?
alias
function
set
env
defined
LPI-Lernziel Die Shell-Umgebung anpassen und verwenden (105.1)
Das Kommando alias (Antwort 1) gibt eine Liste der in der
aufgerufenen Shell definierten Aliase aus und hat nichts mit
Funktionen zu tun.
Mit dem Kommando function (Antwort 2) kann eine neue Funktion
definiert werden, was hier nicht gefragt war, aber es hilft nicht bei
der Anzeige der definierten Funktionen.
Der Befehl env (Antwort 3) dient dazu, ein Programm in einer
veränderten Umgebung laufen zu lassen. Wird env ohne weitere
Argumente ausgegeben, liefert es die aktuellen Umgebungsvariablen der
Shell (aber siehe unten).
defined (Antwort 5) ist eine Erfindung des Fragenautors.
Richtig ist set (Antwort 4). Dieses Kommando gibt, ohne
Argumente aufgerufen, alle definierten Variablen und Funktionen aus.
Mit set -a können Sie übrigens dafür sorgen, dass neu definierte
Funktionen in die Umgebung exportiert werden (wo später gestartete
Subshells sie finden können). In diesem Fall zeigt auch env solche
Funktionen an, aber eben nur diejenigen, die nach dem set -a
definiert wurden.
Nicht angemeldet
Fehler in Erklaerung
Michael (Gast) · 9. Dezember 2009, 15:40
Antwort 3 und 4 wurden in der Erlaerung vertauscht.
Richtig ist set (Antwort 3) .....
Nicht ganz korrekte Antwort
Peter Kluge (eingetragen) · 24. März 2010, 11:08
Hallo Anselm,
sobald die bash POSIX-konform (set -o posix bzw. sh) läuft, werden die Funktionen bei set nicht mehr mit angezeigt.
Richtiger wäre hier:
typeset -f
gruß
Peter