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