Este é um exemplo de não usar a ferramenta certa para o trabalho. env
não é a única ferramenta que define variáveis de ambiente e, em seguida, a cadeia carrega outro programa. E não lê dados variáveis do arquivo.
É claro que o comando .
a.k.a. source
também não é a ferramenta certa para esse trabalho.
- Permite que o arquivo contenha inesperadamente comandos de shell diferentes de atribuições de variáveis simples, o que, em determinadas circunstâncias (dependendo do arquivo de configuração), pode ser uma brecha de segurança.
- Uma série de atribuições, como no exemplo da pergunta, originada por
.
, define variáveis shell e não ambiente . Eles não são exportados automaticamente.
As ferramentas certas são ferramentas comuns de carregamento de corrente de vários conjuntos de ferramentas de tais ferramentas.
Um deles é o read-conf
do conjunto de ferramentas para o nariz , projetado para ler exatamente esse tipo do arquivo de configuração (como /etc/rc.conf
de - digamos - PC-BSD ) e definir variáveis de ambiente sem implementar e abrir arquivos de configuração data para uma sintaxe de linguagem de shell inteira:
jdebp % uname Linux jdebp % cat e a=3 b="5 6" jdebp % read-conf e printenv | tail -n 3 USER=jdebp a=3 b=5 6 jdebp %
jdebp % uname FreeBSD jdebp % read-conf /etc/rc.conf printenv | head -n 2 cron_enable=NO sendmail_msp_queue_enable=NO jdebp %
Outra ferramenta desse tipo é runenv
, do Wayne Marshall, do perp.