Почему я добавляю путь к~/.профиль bash и источник, но нет никакого эффекта?

в своем install.sh:

# other commands to install java...
echo 'export JAVA_HOME="/usr/java/latest"' >> ~/.bash_profile
source ~/.bash_profile

после того, как этот скрипт работает, я типа echo $JAVA_HOME, но ничего не отображается, но когда я выполнить source команда из текущей оболочки, JAVA_HOME отображается, когда я повторяю его снова.

Почему мой скрипт не работает и как это исправить?

Я ssh на свежий CentOS 7 и запустить сценарий выше.

12
задан Ryakna
18.05.2023 1:32 Количество просмотров материала 2787
Распечатать страницу

2 ответа

install.sh выполняется в случае, когда с собственным окружением. В этой среде вы установили JAVA_HOME успешным.

Если install.sh с его subshell закончена его окружающая среда тоже ушла. Подоболочка не может задать переменную в вызывающем процессе.

Если вы начинаете install.sh с source install.sh Он не работает в подоболочку и вы можете задать значение переменной JAVA_HOME. но Я не знаю, если другие строки кода в install.sh готовы бежать через source.

1
отвечен Cyrus 2023-05-19 09:20

JAVA_HOME является переменной окружения, однако, если вы оставите скрипт, в котором вы источник .bash_profile, его значение исчезнет.

хорошее новое, что в следующий раз, когда вы войти, значение должно быть установлено.

0
отвечен Archemar 2023-05-19 11:37

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх