set -a
. ./tmp.txt
set +a
set -a
заставляет переменные¹, определенные отныне, автоматически экспортироваться. Он доступен в любой оболочке, похожей на Bourne. .
это стандарт и название Bourne для source
команды, поэтому я предпочитаю его для переносимости ( source
происходит от csh
и теперь доступен в большинстве современных Bourne-подобных оболочек, включая, bash
хотя (иногда с немного другим поведением)).
В оболочках POSIX вы также можете использовать set -o allexport
в качестве более наглядного альтернативного способа его записи ( set +o allexport
для сброса).
¹ bash
Имейте в виду, что это также приводит к тому, что все функции, объявленные в то время allexport
как включено, экспортируются в среду (как BASH_FUNC_myfunction%%
переменные среды, которые затем импортируются всеми bash
оболочками, запущенными в этой среде, даже если они запускаются как sh
).