Команда source не работает при использовании внутри скрипта оболочки

Команда source не работает при использовании внутри скрипта оболочки

Я использую установщик, который добавляет переменную среды в ~/.bash_profileфайл.

Когда я запускаю сервер Jetty, он не может найти эту запись...

Когда я бегу

$ source ~/.bash_profile

он перезагружает ~/.bash profileфайл и сервер успешно запускается без каких-либо проблем.

Проблема в том, что мой клиент не собирается начинать новый сеанс оболочки и вручную обновлять файл ~/.bash_profile.

Я попытался добавить source ~/.bash_profileкоманду в скрипт оболочки, который я вызываю при запуске скрипта запуска сервера Jetty, но это тоже не работает.

Есть ли другой способ перезагрузить ~/.bash_profileтекущую сессию? Любая информация, которую вы мне предоставите, будет очень признательна.

решение1

Скрипт оболочки обычно не запускается bash (за исключением случаев, когда вы явно это указываете).

Обратите внимание, что во многих системах Linux /bin/sh теперь является нестандартной командой оболочки, импортированной из , dashпоэтому такая оболочка, как dash, ее не поддерживает.sourcecsh

Определенная в POSIX команда «точка» ( .) должна работать, если передаваемый ей параметр файла не содержит нестандартных расширений.

Связанный контент