Vielleicht möchten Sie in den Befehl alias
und schauen set
. Wenn ohne Parameter ausgeführt, alias
werden alle definierten Parameter und set
alle Variablen und Funktionen aufgelistet. Wenn Sie die Ausgabe dieser Befehle in eine temporäre Datei verschieben und dann bash mitteilen, dass diese Datei als rc-Datei gelesen werden soll, kann dies Ihren Vorstellungen entsprechen.
Child Bash ist identisch mit dem Aufruf des übergeordneten Elements
357
Andrew Wood
Ist es möglich, eine Bash so aufzurufen, dass alles über meine Umgebung (Aliase, Funktion, exportierte / nicht exportierte Variablen usw.) in der neuen Shell vorhanden ist?
Ich würde mich damit zufriedengeben, nur die Shell-Variablen zu bekommen, die nicht Teil meiner Umgebung sind. Ich laufe bash --norc
und das erste, was mir auffällt, ist, dass ich $ PS1 und meine ls
Farben verloren habe. Ich könnte diese Variablen einfach exportieren, bevor bash
ich anrufe, aber ich mache mir Sorgen um die ganze Menge anderer Dinge, die ich vermisse.
2 Antworten auf die Frage
1
cledoux
Dies ist das nächste, was ich noch nicht war, aber ich habe endlich akzeptiert, dass das, was ich wirklich will, unmöglich ist. Ich möchte ein Perl-Skript schreiben, das meine Umgebung festlegt. Es würde etwas tun, einige Variablen setzen und schließlich `exec bash`. Ich kann es mir nicht leisten, die Umgebung durch rc init-Dateien beschmutzen zu lassen, aber ich möchte Dinge wie ls Coloring und eine absteigende PS1. Ich denke, meine beste Wette ist vielleicht, dass das Perl-Skript die Änderungen der Umgebung druckt und der Benutzer es mit einem Häkchen abrufen lässt.
Andrew Wood vor 13 Jahren
0
Lassen Sie es je nach Komplexität des Perl-Skripts seine eigene temporäre RC-Datei schreiben und rufen Sie dann bash mit: bash --rcfile auf Dadurch wird nicht die systemweite oder Benutzer-RC-Datei geladen, sondern nur die angegebene Datei.
cledoux vor 13 Jahren
0
Ich war teilweise dabei, genau das zu tun, als mir klar wurde, dass das Skript keinen Zugriff auf die Aliasnamen und Funktionen seiner Eltern haben kann - nur auf die Umgebung.
Andrew Wood vor 13 Jahren
0
0
grawity
Nein.
Sie können jedoch den automatischen Export von Funktionen und Variablen aktivieren, indem Sie set -a
oben in Ihr rc
Skript hinzufügen .
Verwandte Probleme
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
10
Wie kann ich die Bash-Historie durchsuchen und einen Befehl erneut ausführen?
-
2
Kann die Ausgabe eines Befehls an zwei andere Befehle weitergeleitet werden?
-
8
Benennen Sie eine Gruppe von Dateien mit einem Befehl um
-
2
Warum aktualisiert sich mein Pfad nicht * jetzt *?
-
5
Wie entferne ich einen symbolischen Link zu einem Verzeichnis?
-
8
Rette mich vor dem Kauderwelsch
-
9
Wie kann ich jeder Zeile einer Textdatei eine Zeilennummer und einen Tabulator voranstellen?
-
1
Wann sollte ich Konfigurationen in .bashrc vs einfügen? .bash_profile?
-
1
Umleitung: Wie kam das zusätzliche Wort in die Datei?