Das Klonen des Pfads ist einfach, wenn Sie Ihr Terminalprogramm über die Befehlszeile ausführen können. Angenommen, Sie verwenden xterm
, führen Sie einfach xterm &
die Eingabeaufforderung des Terminals aus, das Sie klonen möchten. Das neue xterm wird im selben Verzeichnis gestartet, es sei denn, Sie haben es so konfiguriert, dass es als Anmeldeshell gestartet wird. Alle exportierten Umgebungsvariablen werden ebenfalls übertragen, nicht exportierte Variablen jedoch nicht.
Eine schnelle und schmutzige Methode zum Klonen der gesamten Umgebung (einschließlich nicht exportierter Variablen) ist wie folgt:
# from the old shell:
set >~/environment.tmp
# from the new shell:
. ~/environment.tmp
rm ~/environment.tmp
Wenn Sie benutzerdefinierte Shell-Optionen festgelegt haben, müssen Sie diese ebenfalls erneut anwenden.
Sie können diesen gesamten Prozess in ein leicht ausführbares Skript einbinden. Lassen Sie das Skript die Umgebung in einer bekannten Datei speichern und dann ausführen xterm
. Lassen Sie Ihre .bashrc-Datei nach dieser Datei suchen, sie beschaffen und löschen, wenn sie gefunden wird.
Wenn Sie nicht ein Terminal von einem anderen aus starten oder nur mehr Kontrolle wünschen, können Sie alternativ zwei Funktionen verwenden, die Sie in .bashrc definieren:
putstate () {
declare +x >~/environment.tmp
declare -x >>~/environment.tmp
echo cd "$PWD" >>~/environment.tmp
}
getstate () {
. ~/environment.tmp
}
BEARBEITEN : Geändert, putstate
so dass der "exportierte" Status der Shell-Variablen kopiert wird, um mit der anderen Methode übereinzustimmen. Es gibt andere Dinge, die ebenfalls kopiert werden könnten, z. B. Shell-Optionen (siehe help set
). Daher gibt es in diesem Skript Raum für Verbesserungen.