bash/shell Source и Export - Какая разница для передачи переменных среды окружения
Primary tabs
Вроде бы разница такая:
source .env- дает доступ к переменным из источника именно текущему шелл-окружениюexport NAME=VALUE- перадает значение запущенным из текущего шелл окружения другим подпроцессам
На что это влияет
Пусть у нас есть .env файл с таким содержимым:
BASE_VAL=7
(просто значение, заданное через равно)
Именно из за этой разницы, например php-скрипт myscript.php (который не является баш/шелл-командой) не получит значения из .env если вызывать его так:
/bash/bin -с "source .env && php myscript.php"
(см. решение этой проблемы).
а вот команда вида:
/bin/bash -c "source .env && echo \$BASE_VAL"
- отработает успешно, получив значение переменной в окружении и тут же их распечатав (в том же процессе)
Видео: bash shell export source Какая разница - как передать переменные из файла другому процессу скрипту:
- Log in to post comments
- 171 reads
vedro-compota
Thu, 11/20/2025 - 17:19
Permalink
Примечание: в PHP получить
Примечание: в PHP получить переменную среды окружения можно так:
getenv('BASE_VAL')_____________
матфак вгу и остальная классика =)