Eu tenho um tmp.txt
arquivo que contém variáveis a serem exportadas, por exemplo:
a=123
b="hello world"
c="one more variable"
Como posso exportar todas essas variáveis usando o export
comando, para que possam ser usadas posteriormente por processos filhos?
.env
arquivos automaticamente quando vocêcd
entra em um diretório.Respostas:
A julgar pela sua outra pergunta, você não deseja codificar os nomes das variáveis:
teste-o:
fonte
grep
para pular comentários:export $(grep --regexp ^[A-Z] tmp.txt | cut -d= -f1)
set -a
faz com que as variáveis¹ definidas a partir de agora sejam exportadas automaticamente. Está disponível em qualquer shell tipo Bourne..
é o nome padrão e Bourne para osource
comando, então prefiro-o para portabilidade (source
vemcsh
e agora está disponível na maioria dos shells modernos semelhantes a Bourne, incluindobash
(às vezes com um comportamento ligeiramente diferente)).Nos shells POSIX, você também pode usar
set -o allexport
como uma maneira alternativa mais descritiva de escrevê-lo (set +o allexport
para desabilitar).¹
bash
Lembre-se de que também faz com que todas as funções declaradas enquantoallexport
estejam exportadas para o ambiente (comoBASH_FUNC_myfunction%%
variáveis de ambiente que são importadas por todos osbash
shells executadas nesse ambiente, mesmo quando executadas comosh
).fonte
Apenas faça:
fonte
set -a
seria muito mais simples, mas isso realmente funciona.