Клонирование пути легко, если вы можете запустить вашу терминальную программу из командной строки. Предполагая, что вы используете xterm
, просто запустите xterm &
из терминала терминала, который вы хотите клонировать. Новый xterm будет запускаться в том же каталоге, если только вы не настроили его для запуска в качестве оболочки входа в систему. Любые экспортированные переменные среды также будут перенесены, но не экспортированные переменные - нет.
Быстрый и грязный способ клонирования всей среды (включая неэкспортированные переменные) заключается в следующем:
# from the old shell:
set >~/environment.tmp
# from the new shell:
. ~/environment.tmp
rm ~/environment.tmp
Если вы установили какие-либо пользовательские параметры оболочки, вам придется также повторно применить их.
Вы можете обернуть весь этот процесс в легко запускаемый скрипт. Сценарий сохранит среду в известный файл, затем запустите xterm
. Сделайте так, чтобы ваш .bashrc проверил этот файл, а затем отправьте его и удалите, если он найден.
С другой стороны, если вы не хотите запускать один терминал с другого или просто хотите больше контроля, вы можете использовать пару функций, которые вы определили в .bashrc:
putstate () {
declare +x >~/environment.tmp
declare -x >>~/environment.tmp
echo cd "$PWD" >>~/environment.tmp
}
getstate () {
. ~/environment.tmp
}
РЕДАКТИРОВАТЬ : Изменено putstate
так, чтобы он копировал «экспортированное» состояние переменных оболочки, чтобы соответствовать другому методу. Есть и другие вещи, которые также могут быть скопированы, такие как параметры оболочки (см. help set
) - так что в этом скрипте есть место для улучшения.