source

bash/shell Source и Export - Какая разница для передачи переменных среды окружения

Вроде бы разница такая:

  • source .env - дает доступ к переменным из источника именно текущему шелл-окружению
  • export NAME=VALUE - перадает значение запущенным из текущего шелл окружения другим подпроцессам

На что это влияет

Пусть у нас есть .env файл с таким содержимым:

BASE_VAL=7

(просто значение, заданное через равно)

shell bash bin/sh -с flag source Как передать переменные среды окружения из .env следующей команде

shell bash bin/sh -с flag source Не работает экспорот переменных из .env для следующей команды с флагом -c

Команда source не экспортирует переменные из env при вызове в формате:

 /bin/sh -c "source .env.test1 && echo $BASE_VAL"

При этом содержимое файла .env.test1 :

BASE_VAL=2

Точно также свежее значение не считает и bash:

Создание и активания виртуальной изолированной среды для django (virtualenv и anaconda)

Смотрим список же существующих сред:

conda info -e

Создаём среду (если нужной вам нет):

conda create -n имясреды

активируем:

 conda activate имясреды

Подробности:
https://uoa-eresearch.github.io/eresearch-cookbook/recipe/2014/11/20/conda/

Subscribe to RSS - source