A clonagem do caminho é fácil se você puder executar o programa do terminal na linha de comando. Supondo que você esteja usando xterm
, basta executar a xterm &
partir do prompt do terminal que você deseja clonar. O novo xterm será iniciado no mesmo diretório, a menos que você o tenha configurado para iniciar como um shell de login. Quaisquer variáveis de ambiente exportadas também serão transferidas, mas variáveis não exportadas não serão.
Uma maneira rápida e suja de clonar todo o ambiente (incluindo variáveis não exportadas) é a seguinte:
# from the old shell:
set >~/environment.tmp
# from the new shell:
. ~/environment.tmp
rm ~/environment.tmp
Se você definiu alguma opção de shell personalizada, precisará reaplicá-las também.
Você pode agrupar todo esse processo em um script facilmente executável. Faça com que o script salve o ambiente em um arquivo conhecido e execute xterm
. Faça com que o seu .bashrc verifique esse arquivo, origine-o e exclua-o, se encontrado.
Como alternativa, se você não deseja iniciar um terminal a partir de outro, ou apenas deseja mais controle, poderá usar um par de funções definidas em .bashrc:
putstate () {
declare +x >~/environment.tmp
declare -x >>~/environment.tmp
echo cd "$PWD" >>~/environment.tmp
}
getstate () {
. ~/environment.tmp
}
EDIT : Alterado putstate
para que ele copie o estado "exportado" das variáveis do shell, para corresponder ao outro método. Há outras coisas que também podem ser copiadas, como opções de shell (consulte a help set
) - para que haja espaço para melhorias nesse script.