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