Eu uso o Bash 4.3.48(1) e tenho um .sh
arquivo contendo cerca de 20 variáveis logo abaixo do shebang. O arquivo contém apenas variáveis.
Este é o padrão:
x="1"
y="2"
...
Eu preciso exportar todas essas variáveis de forma DRY : Por exemplo, um export
para todos os vars, digamos 20 export
para 20 vars.
Qual é a maneira mais elegante (mais curta e mais eficiente de todas as formas) de fazer isso dentro desse arquivo?
Um for
laço? Um array
? talvez algo mais simples do que isso (algum tipo de sintaxe de açúcar de coleção)?
Use
set -a
(ou o equivalenteset -o allexport
) na parte superior do seu arquivo para habilitar aallexport
opção shell. Em seguida, useset +a
(ouset +o allexport
) no final do arquivo (onde apropriado) para desativar aallexport
opção shell.Usar a ativação da
allexport
opção shell terá o seguinte efeito (dobash
manual):Esta opção de shell, definida com
set -a
ouset -o allexport
, é definida em POSIX (e deve, portanto, estar disponível em todos ossh
shells semelhantes) comoAs variáveis definidas enquanto esta opção estiver habilitada serão exportadas, ou seja, transformadas em variáveis de ambiente. Essas variáveis de ambiente estarão disponíveis para o ambiente de shell atual e para qualquer ambiente de processo filho criado posteriormente, como de costume.
Isso significa que você terá que
.
, ousource
em shells que possuem este comando), ouAqui está um truque:
Presumo que seu shell seja como o bash e suporte substituições de processo
Ou edite o próprio arquivo: