Lesen Sie zu dieser Frage: Wie kann ich in zsh alle Umgebungsvariablen auflisten? Ich habe mich gefragt, wie ich alle Shell-Variablen auflisten kann.
Gilt die Unterscheidung zwischen Shell- Variablen und Umgebungsvariablen auch für andere Shells als zsh?
Ich interessiere mich hauptsächlich für Bash und Zsh, aber es wäre toll zu wissen, wie man das in anderen Mainstream-Shells macht.
declare -p
set -o posix
existiert nicht in zsh;set
gibt keine Funktionsdefinitionen aus.set -o posix
ist ein Syntaxfehler in den meisten Shells.exec
, Shell-Variablen nicht.Es gibt viele Alternativen:
printenv
env
Export
einstellen
ist auch nützlich, um Shell-Variablen abzurufen.
Wenn Sie zusätzliche Informationen benötigen (Ganzzahl, exportiert), sollten Sie stattdessen verwenden
setzen
Der Export hat den Vorteil, dass seine Ausgabe sofort auf die Shell zurückgelesen werden kann.
Schließlich gibt es
compgen -v
Hier werden alle Variablen, die Shell und die Umgebung angezeigt, ohne deren Wert oder zusätzliche Informationen. Sie müssen $ VARIABLE_NAME als Echo angeben , um den Variablenwert zu ermitteln. Aber zumindest ist die Liste vollständig. Es gehört zu bash , nicht zu zsh .
quelle
export
hatset
zumindest keinen Vorteil , wenn es um das Zitieren eines Shell-Wiedereintritts geht. Undprintenv
undenv
sind überhaupt nicht über Shell - Variablen, obwohl diese nicht fallen oft zusammen mit Umgebungsvariablen.Mit
zsh
können Sie verwendentypeset
, was mehr Informationen liefert alsset
zB den Typ der Variablen. Sie können die Ausgabe weiterhin mitgrep
oder filternsed
, je nachdem, was Sie möchten. Umgebungsvariablen werden wieexported
in der Ausgabe markiert .quelle