На этот вопрос уже есть ответ здесь:
Я хочу установить переменную среды из написанного мной сценария bash. Поэтому я создал bash и назвал его set.sh
. Его содержимое выглядит следующим образом:
#!/bin/bash
export DEV_SRC="/home/m/mydata/sourecCode"
echo $DEV_SRC
Когда я запускаю этот сценарий, вывод будет
/home/m/mydata/sourecCode
Но если я запустил этот код на том же терминале, на котором я запускал приведенный выше сценарий из,
echo $DEV_SRC
Я не вижу никакого значения, поэтому я думаю, что значение не экспортируется.
Почему значение не экспортируется?
По умолчанию bash
создает копию текущей среды, выполняет сценарий в этой среде, затем уничтожает копию.
Для выполнения сценария в текущей среде, необходимо использовать этот синтаксис:
. /home/m/mydata/sourecCode
echo $DEV_SRC
или
source /home/m/mydata/sourecCode
echo $DEV_SRC