Liste alle meine Variablen auf

Liste alle meine Variablen auf

Ich lerne gerade die Grundlagen, einschließlich der Deklaration und des Umgangs mit Variablen. Gibt es eine einfache Möglichkeit, eine Liste aller von mir benannten Variablen anzuzeigen? (Alles, was ich bei der Suche gefunden habe, spricht nur von Umgebungsvariablen, was vielleicht das ist, wonach ich suche, aber wahrscheinlich nicht?)

Antwort1

Beim Ausführen declareerhalten Sie eine Liste aller Umgebungsvariablenin der aktuellen Shell, einschließlich derer, die Sie selbst definiert haben. Es werden auch alle Funktionen eingeschlossen, es sei denn, Sie verwenden die -pOption, die sie überspringt, aber zusätzliches Rauschen hinzufügt.

Antwort2

Es gibt zwei verschiedene Arten von Variablen (eigentlich mehr, aber in diesem Kontext nur zwei): privat und exportiert.

  • Private Variablen sind Variablen, die in der Shell (oder im Skript) verwendet werden können, aber nicht von Programmen, die von der Shell (oder im Skript) gestartet werden.
    Sie können eine Liste aller Variablen, einschließlich der exportierten, erhalten, indem Sie declare, typeset, oder verwenden set. In Bash machen alle 3 dasselbe.

  • Exportierte Variablen können sowohl von der Shell als auch von den von ihr gestarteten Programmen verwendet werden.
    Sie können eine Liste der exportierten Variablen abrufen, indem Sie verwenden env.

Bei der Ausführung von Aufgaben wie diesen ist Folgendes zu beachten:

FOO="bar"
echo "$FOO"

$FOOist eine private/nicht exportierte Variable. Die Shell erweitert sie eigentlich $FOOzu bar, bevor sie sie an übergibt echo. echoSie wird also eigentlich als aufgerufen echo "bar".


Sie können Variablen exportieren, indem Sie export FOO, oder ausführen export FOO="bar".
Darüber hinaus können Sie eine Variable für nur einen einzigen Aufruf eines Programms exportieren, indem Sie die Variable am Anfang des Befehls hinzufügen. Beispiel:

FOO="bar" cmd1
cmd2

cmd1Zugriff darauf haben wird, $FOOaber cmd2nicht.

verwandte Informationen