Если я хочу наследовать переменные среды дочерним процессам, я делаю что-то вроде:
export MYVAR=tork
Предположим, у меня есть файл site.conf
, содержащий назначения значений (которые могут содержать пробелы) для переменных:
EMAIL="[email protected]"
FULLNAME="Master Yedi"
FOO=bar
Теперь я хотел бы обрабатывать этот файл всякий раз, когда я открываю новую оболочку (например, с некоторым кодом в ~/.bashrc
или ~/.profile
), так что любые процессы, запущенные из этой недавно открытой оболочки, наследуют назначения через переменные среды.
Очевидным решением будет префикс каждой строки в site.conf
с помощью export
и просто исходный файл. Однако я не могу этого сделать, поскольку файл также читается (напрямую) некоторыми другими приложениями, поэтому формат исправлен.
Я пробовал что-то вроде
cat site.conf | while read assignment
do
export "${assignment}"
done
Но это не работает по разным причинам (самое главное, что export
выполняется в подоболочке, поэтому переменная никогда не будет экспортироваться в дочерние оболочки вызывающей оболочки).
Есть ли способ программно export
неизвестных переменных в bash?