При выполнении сценария оболочки в Ubuntu (или в любом другом unix-типе enviro), как я могу сохранить экспорт вне сценария? - PullRequest
1 голос
/ 10 мая 2011

Я новичок в Linux и особенно в Ubuntu 11, который я сегодня впервые пробую. Мне нужен Linux для разработки, которая требует эмулятора на основе Linux, поэтому я пытаюсь написать сценарий оболочки, который настраивает мою среду разработки.

Теперь я создал папку .scripts в моем домашнем каталоге и добавил ее в свой путь, экспортировав ее в .bashrc, поэтому каждый раз, когда я запускаю новый экземпляр терминала, я могу выполнять любые собственные сценарии, которые я туда добавляю .

Теперь один (на самом деле три) из этих сценариев устанавливает все мои пути, связанные с dev, экспорта, а также команду cd, которая переключается в соответствующую папку для этого dev. Однако (опять же, простите, если вы уже знаете это ...) скрипт запускается в своем собственном «сеансе» (из-за отсутствия лучшего слова), так что хотя enviro-vars и тому подобное все настроены и выполняются (как было доказано) встраивая echo вызовов повсюду), когда сценарий завершится, и я вернусь обратно в терминал, где я выполнял сценарий, что другой сеанс больше не существует и, за исключением очистки экрана и вывода на экран, больше ничего не показывает Скрипт когда-либо работал.

Теперь я не уверен, что возможно даже расширить экспортируемые переменные вне этого сценария обратно в вызывающий «экземпляр» или есть какой-то флаг, который я могу установить для выполнения сценария в существующем сеансе, так что я озадачен.

Теперь, если это не возможно, возможно ли по крайней мере написать сценарий или настроить значок, который может запустить новое окно терминала, затем выполнить сценарий, но оставить окно открытым и инициализированным?

Спасибо!

Mark

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

Поместите скрипт в определение функции в ~/.bashrc. Например

enter_dev_env() {
        cd /home/foo/src
        export foo="bar"
}
1 голос
/ 10 мая 2011

Запустите команду с источником.

источник foo.sh

...