Как мы сохраняем команду `source bash_profile` за пределами сценария Ruby?

StackOverflow https://stackoverflow.com/questions/19850945

Вопрос

То, что мы пытаемся сделать, это позвонить source bash_profile Чтобы перезагрузить файл bash_profile. Сценарий захватывает Bash_profile человека и загружает его на компьютер человека. Проблема в том, что source bash_profile не будет продолжаться вне сценария рубины. После того, как сценарий заканчивается, терминал выглядит так же, как и раньше. Как мы можем сделать так, чтобы source bash_profile Сохраняется за пределами сценария рубин?

Нет правильного решения

Другие советы

А bash_profile Обычно изменяет среду BASH (установка функций, псевдонимов, переменных, привязки считывания и т. Д.), И на самом деле нет способа изменить среду процесса родительского удара.

Итак, лучшее, что вы можете сделать, это закончить сценарий Ruby execновый удар, указав -l (или же --login) вариант сделать это Вход в оболочку так что это начнется с поиска bash_profile. Анкет (Вы также можете сделать это, сделав первый персонаж аргументации -, обычно установив его на -bash.)

Если у вас есть контроль над тем, как инициируется сценарий Ruby, вы сможете вызвать его execЭд, чтобы он заменил родительский процесс удара. Это сделает более чистое дерево процессов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top