Le clonage du chemin est facile si vous pouvez exécuter votre programme de terminal à partir de la ligne de commande. En supposant que vous utilisez xterm
, exécutez simplement à xterm &
partir de l'invite du terminal que vous souhaitez cloner. Le nouveau xterm démarrera dans le même répertoire, sauf si vous l'avez configuré pour démarrer en tant que shell de connexion. Toutes les variables d'environnement exportées seront également reportées, mais pas les variables non exportées.
Un moyen rapide et sale de cloner tout l'environnement (y compris les variables non exportées) est le suivant:
# from the old shell:
set >~/environment.tmp
# from the new shell:
. ~/environment.tmp
rm ~/environment.tmp
Si vous avez défini des options de shell personnalisées, vous devrez également les réappliquer.
Vous pouvez envelopper tout ce processus dans un script facilement exécutable. Demandez au script d'enregistrer l'environnement dans un fichier connu, puis exécutez-le xterm
. Demandez à votre .bashrc de rechercher ce fichier, sourcez-le et supprimez-le s'il est trouvé.
Alternativement, si vous ne voulez pas démarrer un terminal à partir d'un autre, ou si vous voulez simplement plus de contrôle, vous pouvez utiliser une paire de fonctions que vous définissez dans .bashrc:
putstate () {
declare +x >~/environment.tmp
declare -x >>~/environment.tmp
echo cd "$PWD" >>~/environment.tmp
}
getstate () {
. ~/environment.tmp
}
EDIT : modifié de putstate
sorte qu'il copie l'état "exporté" des variables du shell, afin de correspondre à l'autre méthode. Il y a aussi d'autres choses qui pourraient être copiées, comme les options du shell (voir help set
) - il y a donc place à amélioration dans ce script.