Clonar o caminho é fácil se você puder executar seu programa de terminal a partir da linha de comando. Assumindo que você está usando xterm
, apenas execute xterm &
no prompt do terminal que você deseja clonar. O novo xterm será iniciado no mesmo diretório, a menos que você tenha configurado para iniciar como um shell de login. Quaisquer variáveis de ambiente exportadas também serão transferidas, mas não serão exportadas.
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ê tiver definido alguma opção personalizada de shell, terá que reaplicar essas opções também.
Você pode envolver 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
. Peça ao seu .bashrc para verificar esse arquivo, e fonte e excluí-lo, se encontrado.
Como alternativa, se você não quiser iniciar um terminal de outro, ou apenas quiser mais controle, poderá usar um par de funções que você define em .bashrc:
putstate () {
declare +x >~/environment.tmp
declare -x >>~/environment.tmp
echo cd "$PWD" >>~/environment.tmp
}
getstate () {
. ~/environment.tmp
}
EDIT : Alterou putstate
para que copie o estado "exportado" das variáveis do shell, para corresponder ao outro método. Há outras coisas que podem ser copiadas também, como opções de shell (veja help set
) - então há espaço para melhorias neste script.