Настройка переменных среды с помощью файла .sh

Настройка переменных среды с помощью файла .sh

Я создал файл env.sh, содержимое которого приведено ниже.

#!/bin/sh

export M2_HOME=/vagrant/tools/maven
export PATH=$PATH:$M2_HOME/bin
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_65
export ANT_HOME=/usr/local/apache-ant-1.9.7
export MAVEN_HOME=$M2_HOME

но выполнение этого sh-файла не приводит к экспорту переменных env. Приходится вручную выполнять каждую строку, чтобы экспортировать их. Пожалуйста, помогите

решение1

Вам нужно source( .) файл, а не выполнять:

. env.sh

При запуске скрипта он запускается в подоболочке, и все экспортированные параметры выйдут из области действия после завершения (до)оболочки, не влияя на родительскую оболочку.

Когда вы sourceэто сделаете, параметры будут доступны в вызывающем сеансе. А также в дочерних процессах, когда вы exportих вызываете.


Обратите внимание, что системная оболочка по умолчанию ( sh) для Ubuntu — это dash, а не , bashи gnome-terminalзапускается bashкак интерактивная оболочка. Во время выполнения убедитесь, что shebang правильный и желаемый. Также во время source-ing, shebang не нужен, вы можете его удалить.

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