Перезавантажте файл bash's .profile, не виходячи з нього та знову ввімкнувшись


81

Чи можна примусити bash для перезавантаження .profile-файлу без виходу та повторного входу?

Відповіді:


102

Це має працювати для поточного терміналу:

. ~/.profile

.є bashвбудованим і синонімом source, див . man bash:

. ім'я файлу [ аргументи ] ім'я
вихідного файла [ аргументи ]
     Читання та виконання команд із імені файлу у поточному середовищі оболонки (…).


18
Це буде ефективно лише в поточному терміналі.
enzotib

@enzotib Чи є спосіб подолати це?
Матті

14
@Matty: ні, щоб зробити зміни видимими для всього графічного середовища, можна лише перезапустити сеанс
enzotib

2
Єдине питання з цим полягає в тому, що якщо ви вилучите щось із шляху, воно не набере чинності, поки ви не перезапустите
Aras,

1
@Aras робить важливий момент , який заслуговує розширення: Якщо що - то віддаляється з ~/.profile, що зміни будуть НЕ вступлять в силу після . ~/.profileперезавантаження. Наприклад, додайте функцію до ~/.profile:, function externalip () { curl http://ipecho.net/plain; echo; }тоді ~/.profile- ІТ РОБОТИ. Тепер видаліть цю функцію ~/.profile, потім . ~/.profileзнову. Функція все ще доступна - лише перезапуск (вихід та вхід) видалить її.
Сеамус

13

Якщо ви не хочете запускати нову оболонку, але виконувати скрипт у поточній оболонці, ви її джерелом:

source script_name.sh

source = .

sourceВбудований Bash є синонімом команди Bourne shell .(крапка).

чемність - tldp.org

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.