Tengo un tmp.txt
archivo que contiene variables para exportar, por ejemplo:
a=123
b="hello world"
c="one more variable"
¿Cómo puedo exportar todas estas variables usando el export
comando, para que luego puedan ser utilizadas por procesos secundarios?
.env
archivos cuando ingresascd
a un directorio.Respuestas:
A juzgar por su otra pregunta, no desea codificar los nombres de las variables:
Pruébalo:
fuente
grep
para omitir comentarios:export $(grep --regexp ^[A-Z] tmp.txt | cut -d= -f1)
set -a
hace que las variables definidas a partir de ahora se exporten automáticamente Está disponible en cualquier shell tipo Bourne..
es el nombre estándar y Bourne para elsource
comando, por lo que lo prefiero para la portabilidad (source
provienecsh
y ahora está disponible en la mayoría de los shells modernos de Bourne, incluyendobash
(a veces con un comportamiento ligeramente diferente)).En shells POSIX, también puede usarlo
set -o allexport
como una forma alternativa más descriptiva de escribirlo (set +o allexport
para desarmar).¹ En
bash
, tenga en cuenta que también hace que todas las funciones declaradas mientrasallexport
está activado se exporten al entorno (ya queBASH_FUNC_myfunction%%
las variables de entorno que luego importan todos losbash
shells se ejecutan en ese entorno, incluso cuando se ejecutan comosh
).fuente
Solo haz:
fuente
set -a
sería mucho más simple, pero esto realmente funciona.