Как перезагрузить .bashrc в оболочке, вызвав скрипт [дубликат]

Как мне заставить оболочку, из которой я вызвал скрипт, перезагрузить .bashrc изнутри скрипта?

Я пытаюсь создать скрипт «нового ящика», который все настраивает так, как нужно Мне это нравится. Все работает, кроме перезагрузки .bashrc .

Я знаю, что могу «просто» сделать . ~ / .bashrc или exec bash или любой другой способ применить изменения после выполнения сценария. Но это как бы побеждает цель сделать исправление с помощью одной кнопки, и зайти так далеко только для того, чтобы прикрутить последний шаг, сводит меня с ума lol


Я пробовал добавить весь исходный код ~. / bashrc exec bash материал для сценария, но без радости, поскольку он только перезагружает его для среды сценария, а не для вызывающей оболочки

Я все еще новичок, так что это, вероятно, что-то очень очевидное, что объясняет почему я не мог googlefu ответ>. <

любая помощь была бы очень признательна.

1
задан 15 December 2018 в 12:00

2 ответа

Это не могло бы работать на все. И может делать что-то, что я не должен делать.. но в моих целях это сделало задание.

Для script.sh если я называю его . script.sh вместо bash script.sh все, кажется, выполняет и обновляет соответственно.

Yay!

2
ответ дан 7 December 2019 в 13:20

Я знаю, что это будет звучать глупым, я являюсь также новым здесь, но в чем при экспорте сред, Вы нуждались непосредственно из сценария и затем добавили их к .bashrc для более позднего использования?

Скажем, т.е. проверяя, существует ли переменная окружения и загружает его:

### MySQL
if [ -z "$MYSQL_HOME" ]; then
    export MYSQL_HOME="/usr/local/mysql"
    export PATH="$MYSQL_HOME/bin:$PATH"
fi

и затем скопируйте этот код сегмента в .bashrc также...

Править

Я на самом деле споткнулся к этому Обновлению ~/.bashrc файл для сценария

0
ответ дан 7 December 2019 в 13:20

Другие вопросы по тегам:

Похожие вопросы: